一、前言
在网络爬虫和数据挖掘领域,提取网页内容是一项常见且重要的任务。无论是从新闻网站、电商平台还是社交媒体,获取有用的信息都是开展后续分析和应用的前提。然而,传统的网页内容提取需要编写大量的代码来处理和解析 HTML 文档,费时费力且容易出错。幸运的是,随着人工智能技术的发展,我们可以借助 AI 模型来简化这一过程。
在本文中,我将分享如何利用 Python 中的 requests
库和 beautifulsoup4
库从网页中提取电影信息,并利用 AI 模型生成相应的提示信息的实践经验。AI 模型在其中的重要性不言而喻,它能够自动识别并生成文本,帮助我们节省大量的时间和精力。
首先,我们将使用 requests
库发送 HTTP 请求获取网页内容,然后利用 beautifulsoup4
库解析 HTML 文档,提取所需的电影信息。接着,我们将使用 dashscope
包与 AI 模型进行交互,让模型为我们生成电影信息的提示。通过这个实例,你将了解到如何利用 Python 中强大的工具和现成的 AI 模型,轻松实现网页内容的提取与处理。
二、准备工作
1. 获取API-KEY
去阿里云的模型服务灵积DashScope免费获取一个API-KEY
去免费使用大模型,步骤如下:
链接:[dashscope.aliyun.com/] ,需要注册登入。
点击立即开通
模型API调用里第二个创建API-KEY
创建新的 API-KEY
创建后,会跳出来一个框框,里面有串代码,复制完保存到你找的到的地方,后面需要使用到。
2. 会简单使用colab平台
链接:colab.research.google.com/ ,需要谷歌账号
好处:写python代码时能够很轻松的安装一些复杂的库,就一串代码就能搞定。
创建好后就可以开始写代码了
三、代码
每一段代码都需运行
1. 第一段代码:
# python http请求库
!pip install requests
# python dom 查找
!pip install beautifulsoup4
- 直接安装了 Python 中用于发送 HTTP 请求的
requests
库。 - 直接安装了 Python 中用于解析 HTML 文档的
beautifulsoup4
库。(这就是colab的一个好处,速度还快)
这两个库的安装是为了后续的网络爬虫程序,requests
库用于发送 HTTP 请求获取网页内容,beautifulsoup4
库用于解析 HTML 文档,提取所需信息。安装这两个库后,你可以在代码中导入它们并使用它们的功能。
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 内容。
代码解析:
- 导入了
requests
和BeautifulSoup
库,用于发送 HTTP 请求和解析 HTML 页面。 - 定义了
fetch_movie_list(url)
函数,接收一个参数url
,表示要获取电影信息的页面链接。 - 设置了 HTTP 请求头,模拟了浏览器发送请求的行为,避免被目标网站识别为爬虫并阻止访问。
- 使用
requests.get()
方法发送 GET 请求,获取页面的 HTML 内容。 - 检查响应的状态码,如果状态码为 200,则表示请求成功,继续执行后续操作;否则打印出错信息。
- 使用
BeautifulSoup
解析 HTML 内容,将其转换为 BeautifulSoup 对象,方便后续操作。 - 使用 CSS 选择器
soup.select()
提取页面中的电影信息,将其存储在movies
列表中。 - 遍历前两部电影的信息,使用
prettify()
方法美化 HTML 代码,并将其拼接成一个字符串all_movies_text
。 - 最后返回前两部电影的 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()
代码解析
- 导入了
dashscope
包,用于与 AI 模型进行交互。 - 设置了
dashscope
的 API 密钥,以便进行身份验证和使用dashscope
服务。 - 定义了一个函数
call_qwen_with_prompt()
,用于调用qwen_turbo
模型并生成电影信息的提示信息。 - 准备了要发送给模型的消息,消息中包含了
prompt
变量中定义的电影信息的提示。 - 使用
dashscope.Generation.call()
方法调用qwen_turbo
模型,并传递消息作为输入。 - 将生成的文本结果打印输出。
总之,这段代码利用 dashscope
包与 AI 模型进行交互,通过给定的提示信息,让 AI 模型生成电影信息的提示。
结果:
显示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%免费】🆓