人生苦短,我用 Python,AI 模型助力高效数据提取

news2024/11/15 21:04:25

一、前言

在网络爬虫和数据挖掘领域,提取网页内容是一项常见且重要的任务。无论是从新闻网站、电商平台还是社交媒体,获取有用的信息都是开展后续分析和应用的前提。然而,传统的网页内容提取需要编写大量的代码来处理和解析 HTML 文档,费时费力且容易出错。幸运的是,随着人工智能技术的发展,我们可以借助 AI 模型来简化这一过程。

在本文中,我将分享如何利用 Python 中的 requests 库和 beautifulsoup4 库从网页中提取电影信息,并利用 AI 模型生成相应的提示信息的实践经验。AI 模型在其中的重要性不言而喻,它能够自动识别并生成文本,帮助我们节省大量的时间和精力。

首先,我们将使用 requests 库发送 HTTP 请求获取网页内容,然后利用 beautifulsoup4 库解析 HTML 文档,提取所需的电影信息。接着,我们将使用 dashscope 包与 AI 模型进行交互,让模型为我们生成电影信息的提示。通过这个实例,你将了解到如何利用 Python 中强大的工具和现成的 AI 模型,轻松实现网页内容的提取与处理。

二、准备工作

1. 获取API-KEY

阿里云的模型服务灵积DashScope免费获取一个API-KEY去免费使用大模型,步骤如下:

链接:[dashscope.aliyun.com/] ,需要注册登入。

点击立即开通

image.png

c9942beab740e738e11b39b4773db18.png

模型API调用里第二个创建API-KEY

image.png

创建新的 API-KEY

image.png 创建后,会跳出来一个框框,里面有串代码,复制完保存到你找的到的地方,后面需要使用到。

2. 会简单使用colab平台

链接:colab.research.google.com/ ,需要谷歌账号

好处:写python代码时能够很轻松的安装一些复杂的库,就一串代码就能搞定。

image.png

创建好后就可以开始写代码了

三、代码

每一段代码都需运行

1. 第一段代码:
# python http请求库
!pip install requests
# python dom 查找
!pip install beautifulsoup4

  1. 直接安装了 Python 中用于发送 HTTP 请求的 requests 库。
  2. 直接安装了 Python 中用于解析 HTML 文档的 beautifulsoup4 库。(这就是colab的一个好处,速度还快

这两个库的安装是为了后续的网络爬虫程序,requests 库用于发送 HTTP 请求获取网页内容,beautifulsoup4 库用于解析 HTML 文档,提取所需信息。安装这两个库后,你可以在代码中导入它们并使用它们的功能。

image.png

2. 第二段代码:
# 引入请求库 模块化为复用,封装而来
# 函数级化 类 文件 架构
import requests # node require
from bs4 import BeautifulSoup

def fetch_movie_list(url):
  # 设置HTTP 请求头
  headers = {
      'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/124.0.0.0 Safari/537.36'
  }
  # js有什么区别 js是异步 Python是同步
  response = requests.get(url, headers=headers)
  # 状态码 成功
  if response.status_code == 200:
    # 内存中的dom对象
    soup = BeautifulSoup(response.text, 'html.parser')
    movie_list = []
    movies = soup.select('#wrapper #content .article .item')
    # python 不是完全面向对象的,而更年轻的js 是完全面向对象
    # 2.3123.foFixed(2)   '123'.length
    # 突兀
    # print(len(movies))
    # 字符串
    # 人生苦短 我用python 突出简洁
    all_movies_text = ''.join([movie.prettify() for movie in movies[:2]])
    # print(all_movies_text)
    return all_movies_text
  else:
    print("Failed to retrieve content")

url = 'https://movie.douban.com/chart'
movies = fetch_movie_list(url)
print(movies)

功能:这段代码实现了一个函数 fetch_movie_list(url),用于从豆瓣电影排行榜页面获取电影信息,并返回前两部电影的 HTML 内容。

代码解析

  1. 导入了 requestsBeautifulSoup 库,用于发送 HTTP 请求和解析 HTML 页面。
  2. 定义了 fetch_movie_list(url) 函数,接收一个参数 url,表示要获取电影信息的页面链接。
  3. 设置了 HTTP 请求头,模拟了浏览器发送请求的行为,避免被目标网站识别为爬虫并阻止访问。
  4. 使用 requests.get() 方法发送 GET 请求,获取页面的 HTML 内容。
  5. 检查响应的状态码,如果状态码为 200,则表示请求成功,继续执行后续操作;否则打印出错信息。
  6. 使用 BeautifulSoup 解析 HTML 内容,将其转换为 BeautifulSoup 对象,方便后续操作。
  7. 使用 CSS 选择器 soup.select() 提取页面中的电影信息,将其存储在 movies 列表中。
  8. 遍历前两部电影的信息,使用 prettify() 方法美化 HTML 代码,并将其拼接成一个字符串 all_movies_text
  9. 最后返回前两部电影的 HTML 内容。

最后,通过调用 fetch_movie_list(url) 函数,传入豆瓣电影排行榜的链接,获取电影信息的 HTML 内容,并打印输出。

补充:js和python

# js有什么区别 js是异步 Python是同步
  response = requests.get(url, headers=headers)

与 JavaScript 不同,Python 中的 requests 库发送的 HTTP 请求是同步的,意味着代码会等待请求完成后才会继续执行后续的操作。这与 JavaScript 中的异步操作不同,JavaScript 中的网络请求通常是异步的,意味着代码会继续执行,而不会等待请求完成。

异步操作使得 JavaScript 在执行网络请求时不会阻塞其他操作,可以在等待网络请求完成的同时继续执行其他代码。这对于 Web 开发来说非常重要,因为可以在不阻塞用户界面的情况下加载数据和执行其他操作。

# python 不是完全面向对象的,而更年轻的js 是完全面向对象
    # 2.3123.foFixed(2)   '123'.length
    # 突兀

  • Python 不是完全面向对象的,而更年轻的 JavaScript 则是完全面向对象的。
  • 在 JavaScript 中,几乎所有的事物都是对象,甚至基本的数据类型也是对象。
  • 例如,使用 ‘123’.length 获取字符串的长度,或者使用 2.3123.toFixed(2) 来保留数字的小数位数。 而在 Python 中,基本数据类型不是对象,不能直接调用方法和属性。
  • 这使得在 Python 中使用一些方法和属性显得有些突兀,比如在数字上使用 round() 函数来保留小数位数:
3. 第三段代码
# AIGC LLM + Prompt(指令)
# es6 `` 字符串模版
# python
prompt = f"""
{movies}
这是一段电影列表html, 请获取电影名(name),封面链接(pricture),简介(info), 评分(score), 评论人数(commentsNumber),请使用括号的单词作为属性名,以JSON数组的格式返回
"""
print(prompt)

代码解释: 这段代码定义了一个字符串 prompt,其中包含了电影列表的 HTML 内容,并且为之后与ai交互提供了一个说明,要求从 HTML 中提取电影名、封面链接、简介、评分和评论人数,并以 JSON 数组的格式返回,属性名使用括号括起来。

在字符串模板中,{movies} 是一个占位符,用于插入电影列表的 HTML 内容。

最后,通过 print(prompt) 打印输出 prompt 字符串,以展示提取电影信息的具体要求。

4. 第四段代码
!pip install dashscope

!pip install dashscope 是一个命令,用于在 Colab 环境中安装名为 dashscope 的 Python 包。dashscope 是一个用于与 AI 模型进行交互的 Python 包,它提供了一个简单的接口,可以将文本传递给 AI 模型,并获取模型生成的文本。

import dashscope
dashscope.api_key = '你的API-KEY'

def call_qwen_with_prompt():
  messages = [
      {
         'role': 'user',
         'content': prompt
      }
  ]
  response = dashscope.Generation.call(
      dashscope.Generation.Models.qwen_turbo,
      messages=messages,
      result_messages='message'
  )
  print(response)
call_qwen_with_prompt()

代码解析

  1. 导入了 dashscope 包,用于与 AI 模型进行交互。
  2. 设置了 dashscope 的 API 密钥,以便进行身份验证和使用 dashscope 服务。
  3. 定义了一个函数 call_qwen_with_prompt(),用于调用 qwen_turbo 模型并生成电影信息的提示信息。
  4. 准备了要发送给模型的消息,消息中包含了 prompt 变量中定义的电影信息的提示。
  5. 使用 dashscope.Generation.call() 方法调用 qwen_turbo 模型,并传递消息作为输入。
  6. 将生成的文本结果打印输出。

总之,这段代码利用 dashscope 包与 AI 模型进行交互,通过给定的提示信息,让 AI 模型生成电影信息的提示。

结果

image.png 显示200就表示运行成功了,400就是运行错误

运行成功后,你就可以看到你的输出结果了。

四、结语

通过本文的实践,我们深入探索了如何利用 Python 和 AI 模型从网页中提取信息。借助 requests 库和 beautifulsoup4 库,我们可以轻松地获取网页内容,并从中提取所需的数据。而使用 AI 模型,我们不仅能够自动化生成相关的提示信息,还能提高提取数据的效率和准确性。

在今天信息爆炸的时代,获取和处理海量数据是一项具有挑战性的任务。然而,Python 的简洁、强大和灵活性,以及 AI 模型的智能化处理能力,为我们提供了强大的工具和支持,使我们能够更加高效地处理和分析数据,从而更好地服务于我们的需求和目标。

在未来,随着人工智能技术的不断发展和普及,我们相信,Python 和 AI 模型将在数据处理和分析领域发挥越来越重要的作用,为我们带来更多的便利和可能性。

让我们继续学习和探索,利用最新的技术和工具,不断提升自己的能力和竞争力,更好地应对未来的挑战和机遇!

在这里插入图片描述

如何学习AI大模型?

我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。

我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

在这里插入图片描述

第一阶段: 从大模型系统设计入手,讲解大模型的主要方法;

第二阶段: 在通过大模型提示词工程从Prompts角度入手更好发挥模型的作用;

第三阶段: 大模型平台应用开发借助阿里云PAI平台构建电商领域虚拟试衣系统;

第四阶段: 大模型知识库应用开发以LangChain框架为例,构建物流行业咨询智能问答系统;

第五阶段: 大模型微调开发借助以大健康、新零售、新媒体领域构建适合当前领域大模型;

第六阶段: 以SD多模态大模型为主,搭建了文生图小程序案例;

第七阶段: 以大模型平台应用与开发为主,通过星火大模型,文心大模型等成熟大模型构建大模型行业应用。

在这里插入图片描述

👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;

• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;

• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;

• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习框架等技术,这些技术的掌握可以提高程序员的编码能力和分析能力,让程序员更加熟练地编写高质量的代码。

在这里插入图片描述

1.AI大模型学习路线图
2.100套AI大模型商业化落地方案
3.100集大模型视频教程
4.200本大模型PDF书籍
5.LLM面试题合集
6.AI产品经理资源合集

👉获取方式:
😝有需要的小伙伴,可以保存图片到wx扫描二v码免费领取【保证100%免费】🆓

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1984372.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

comfyui flux

下载文本编码器,模型放到ComfyUI/models/clip/ 下,t5模型可以任选其一;https://huggingface.co/comfyanonymous/flux_text_encoders/tree/main 下载vae模型,https://huggingface.co/black-forest-labs/FLUX.1-schnell/tree/main&a…

31、Python之面向对象:开闭原则与多态?学我者生、似我者死

引言 前面我们花了不少的篇幅把Python中面向对象的封装与继承简单介绍了一遍。今天来聊一下Python面向对象的第三个特性:多态。 其实,在《Python之面向对象:一切皆对象,可你真的需要面向对象吗》这篇文章中,对比面向…

Python大数据分析——朴素贝叶斯模型

Python大数据分析——朴素贝叶斯模型 数学方面思路理论基础高斯贝叶斯分类器多项式贝叶斯分类器伯努利贝叶斯分类器 代码部分高斯贝叶斯——皮肤识别多项式贝叶斯——毒蘑菇识别伯努利贝叶斯——情感分析 数学方面 思路 该分类器的实现思想非常简单,即通过已知类别…

vs code 代码同步到服务器,无需下载插件,使用自带ftp

可使用 vscode 自带ftp,无需下载插件 快捷键 ctrl shift p {"name": "My Server", //上传名"host": "192.168.56.102",//服务器"protocol": "ftp",//协议"port": 21,//端口"username": &q…

《机电信息》是什么级别的期刊?是正规期刊吗?能评职称吗?

​问题解答 问:《机电信息》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《机电信息》级别? 答:省级。主管单位:江苏省设备成套股份有限公司 主办单位&#x…

nvm安装高版本的node18.17.0,报https://nodejs.org/dist/latest/SHASUMS256.txt

1、执行npm install v18.17.0这条命令时,报如下错误: 2、或者报Node.js v18.17.0 is not yet released or is not available. 解决方案: 1、打开nvm 的安装路径中的setting.json node_mirror:npm.taobao.org/mirrors/node/ npm_mirror:npm.…

基于目标检测的目标跟踪(python)

文章目录 概要环境准备目标检测实现目标跟踪实现整合后的代码可能遇到的问题Could not load library libcudnn_ops_infer.so.8. Error: libcudnn_ops_infer.so.8: cannot open shared object file: No such file or directory参考概要 基于目标检测的目标跟踪过程通常包括以下…

硬控年轻人的长沙,城市底色竟是研发

近年来,找到“流量密码”的长沙,吸引了来自全国各地的年轻人,形成百川赴海之势。而消费生力军的到来,也让长沙成为新消费发展的“沃土”,三顿半、茶颜悦色、文和友、墨茉点心局、柠季、零食很忙等一众“顶流”新消费品…

ADC的一些细节

一,输入通道 总共 2 个 ADC(ADC1,ADC2),每个 ADC 有 18 个转换通道: 16 个外部通道、 2 个内部通道(温度传感器、内部参考电压) ADC1和ADC2的通道都相同,是采用分时复用来…

汇凯金业:黄金交易技术分析方法

黄金交易,作为一种高风险、高收益的投资方式,需要投资者具备一定的专业知识和技能,才能在市场中获得收益。技术分析,作为一种重要的分析方法,可以帮助投资者判断市场趋势,寻找交易机会。 一、趋势分析&…

TOB拓客销售新方向全网大数据捕捉

销售开拓市场什么最重要 ? 思考这个问题几秒钟,相信大家就知道了 当然是客户数据,只有源源不断的客户数据才有成交机会,所以每个企业都会遇到获客难的问题 那么今天哦我们俩围绕这个问题,给大家汇报一下&#xff…

5 倍网络性能提升!DigitalOcean上线全新高级内存优化型和高级存储优化型 Droplet 云主机

支持用户从想法到实现,再到业务不断发展过程中提供持续可靠的支持,这是 DigitalOcean 的核心使命。所以 DigitalOcean 也在不断推出更多专业的解决方案。 DigitalOcean Droplet 是基于虚拟化硬件上运行的虚拟机(VM)。用户创建的每…

使用无服务器功能的云计算成新趋势?无服务器功能的隐藏挑战

无服务器函数非常适合小任务 使用无服务器功能的云计算已广受欢迎。它们对实现新功能的吸引力源于无服务器计算的简单性。您可以使用无服务器功能来分析传入的照片或处理来自 IoT 设备的事件。它快速、简单且可扩展。您不必分配和维护计算资源 - 只需部署应用程序代码。主要的…

简单的docker学习 第11章 镜像中心

第11章 镜像中心 Docker Hub 与阿里云都是 Docker 的公网镜像中心,用户可以将自己的镜像 push 到公网镜像中心中自己的镜像仓库,并可将仓库设置为私有库,使他人无法看到,更无法 pull,以保证镜像的安全性。不过&#x…

云服务IaaS、PaaS、SaaS的区别

云计算有三种主要服务模式:基础设施级服务(IaaS),平台级服务(PaaS)和软件级服务(SaaS),它们具体是啥?三者之间的区别是什么? IaaS、PaaS、SaaS是…

WAF是什么,有什么用?

在互联网技术的飞速发展下,企业对网络安全的重视程度与日俱增。面对日益复杂的网络攻击和数据安全威胁,云WAF(Web Application Firewall)作为一种先进的网络安全解决方案,正逐渐成为企业网络安全架构中的关键组件。本文…

WEB渗透Web突破篇-WAF绕过

SQL注入分块传输 https://github.com/c0ny1/chunked-coding-converter跑注入点被拦截使用分块传输,右键选择使用SQLMAP跑注入>python sqlmap.py -r 1.txt --batch --proxyhttp://127.0.0.1:8080 --dbs自动提供可用的tamper Atlas https://github.com/m4ll0k/At…

第1讲:C语言常见概念

目录 1. C语言是什么? 2. C语言的历史和辉煌 3. 编译器的选择VS2022 4. VS项目和源文件、头文件介绍 5. 第⼀个C语言程序 6. main函数 7. printf和库函数 8. 关键字介绍 9. 字符和ASCII编码 10. 字符串和\0 1. 转义字符 12. 语句和语句分类 13. 注释是什…

sql注入知识整理

sql注入知识整理 一、SQL注入概念 SQL注入就是用户输入的一些语句没有被过滤,输入后诸如这得到了数据库的信息SQL 注入是一种攻击方式,在这种攻击方式中,在字符串中插入恶意代码,然后将该字符串传递到 SQL Server 数据库引擎的实…

<数据集>电梯内人车识别数据集<目标检测>

数据集格式:VOC格式 图片数量:97张 标注数量(xml文件个数):97 标注类别数:3 标注类别名称: [person, motorcycle, bicycle] 序号类别名称图片数框数1person891322motorcycle78793bicycle2222 使用标注工具&#…