前言
随着网络信息的爆炸性增长,数据抓取成为了获取宝贵资源的重要手段之一。本文将结合Python的requests库与BeautifulSoup库,演示如何自动化抓取豆瓣电影排行榜的数据,并通过阿里云的通义千问(Qwen)大模型,实现对抓取数据的进一步处理与解析,展示AI生成内容(AIGC)的实用价值。让我们一起探索技术如何让数据处理变得更加高效和智能化。
技术栈简介
- requests: Python中最常用的HTTP库,用于发送HTTP请求,获取网页内容。
- BeautifulSoup: HTML和XML解析库,帮助我们从网页源码中提取所需信息,构建DOM树进行便捷查询。
- 通义千问(Qwen) : 阿里云开发的大型语言模型,能够理解和生成高质量的多领域文本,适用于各类文本生成任务。
实战演练
第一步:网页抓取
首先,我们通过requests.get()
方法,配合伪装的User-Agent,成功向豆瓣电影榜单发起请求,获取了网页HTML内容。接着,利用BeautifulSoup解析这些内容,选取了页面中包含电影条目的特定DOM元素。这一步骤展示了基础的网页爬虫技术,是数据收集的起点。
yaml
# python http请求库
!pip install requests
# python dom 查找
!pip install beautifulsoup4
ini
Python
import requests
from bs4 import BeautifulSoup
def fetch_movie_list(url):
headers = {'User-Agent': 'Mozilla/5.0 ...'}
response = requests.get(url, headers=headers)
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
movies = soup.select('#wrapper #content .article .item')
return ''.join([movie.prettify() for movie in movies])
else:
print("Failed to retrieve content")
输出结果
第二步:构造Prompt
这段代码创建了一个字符串prompt
,其中包含了之前从豆瓣电影排行榜抓取到的电影列表信息(通过movies
变量)。紧随其后是一段指令文本,明确告诉AI模型需要执行的操作:从给定的电影列表中提取每部电影的名称、封面链接、简介、评分和评论人数,并要求模型将这些数据组织成一系列JSON对象,每个对象对应一部电影的信息,最后构成一个JSON数组返回。
ini
prompt = f""" {movies} 这是一段电影列表,请获取电影名(name),封面连接(picture)
,简介(info),评分(score),评论人数(commentsNumber),请使用括号的单词作为属性名,以
JSON数组的格式返回 """
print(prompt)
第三步:数据解析与AIGC介入
抓取到的原始HTML数据虽富含信息,但直接阅读不便。我们利用通义千问(Qwen),将抓取的电影列表信息转换成结构化的JSON格式,提取出每部电影的名称、封面链接、简介、评分及评论人数。通过构造特定的指令性Prompt,Qwen能理解并执行高级文本处理任务,如提取关键信息、格式化输出等,展现了AIGC的强大灵活性和实用性。 注意: 使用的通义千问API(通过dashscope库)需要您已经注册了阿里云账号并获取了相应的API密钥。 开通和获取通义千问的API-KEY教程如下:
如何开通DashScope并创建API-KEY_模型服务灵积(DashScope)-阿里云帮助中心 (aliyun.com)
yaml
#下载通义千问
!pip install dashscope
ini
Python
dashscope.api_key = 'your_api_key_here'
def call_qwen_with_prompt(prompt):
messages = [{'role': 'user', 'content': prompt}]
response = dashscope.Generation.call(dashscope.Generation.Models.qwen_turbo, messages=messages, result_message='messages')
print(response)
prompt = f"{movies} 这是一段电影列表,请获取电影名(name),封面连接(picture),简介(info),评分(score),评论人数(commentsNumber),请使用括号的单词作为属性名,以JSON数组的格式返回"
call_qwen_with_prompt(prompt)
结果展示
结论
本文通过一个简单的实战案例,展示了从网页数据抓取到利用AIGC技术进行高级文本处理的全过程。Python以其丰富的库生态和易用性,成为数据采集和预处理的理想工具,而结合通义千问等大型语言模型,可以进一步挖掘数据价值,实现信息的快速提取与转化。这种技术组合不仅提升了数据分析的效率,也为内容创作、信息摘要等领域开启了新的可能
若有不足,恳请各位大佬指出