利用Python进行网页抓取与AIGC实践:豆瓣电影榜单分析自动化

前言

随着网络信息的爆炸性增长,数据抓取成为了获取宝贵资源的重要手段之一。本文将结合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以其丰富的库生态和易用性,成为数据采集和预处理的理想工具,而结合通义千问等大型语言模型,可以进一步挖掘数据价值,实现信息的快速提取与转化。这种技术组合不仅提升了数据分析的效率,也为内容创作、信息摘要等领域开启了新的可能

若有不足,恳请各位大佬指出

相关推荐
red润1 分钟前
使用 HTML5 Canvas 实现动态蜈蚣动画
前端·html·html5
sg_knight8 分钟前
VSCode如何修改默认扩展路径和用户文件夹目录到D盘
前端·ide·vscode·编辑器·web
一个处女座的程序猿O(∩_∩)O18 分钟前
完成第一个 Vue3.2 项目后,这是我的技术总结
前端·vue.js
mubeibeinv19 分钟前
项目搭建+图片(添加+图片)
java·服务器·前端
逆旅行天涯25 分钟前
【Threejs】从零开始(六)--GUI调试开发3D效果
前端·javascript·3d
m0_748255261 小时前
easyExcel导出大数据量EXCEL文件,前端实现进度条或者遮罩层
前端·excel
web147862107231 小时前
C# .Net Web 路由相关配置
前端·c#·.net
m0_748247801 小时前
Flutter Intl包使用指南:实现国际化和本地化
前端·javascript·flutter
飞的肖1 小时前
前端使用 Element Plus架构vue3.0实现图片拖拉拽,后等比压缩,上传到Spring Boot后端
前端·spring boot·架构
青灯文案12 小时前
前端 HTTP 请求由 Nginx 反向代理和 API 网关到后端服务的流程
前端·nginx·http