用Python和大模型如何实现爬虫(爬虫篇二)
前言
在数字化时代,数据挖掘与分析能力成为了一项重要技能。Google Colab,作为一个免费的云端Jupyter Notebook平台,为学习者和开发者提供了一个强大的工具,无需配置本地环境即可进行Python编程、数据分析乃至机器学习项目。
本文旨在引导读者迈出使用Colab的第一步,通过一个简单的Python爬虫示例,演示如何抓取网页数据,并利用阿里云Dashscope平台上的Qwen Turbo模型进行高级信息提取,展现从数据获取到智能分析的全过程。让我们一同探索如何在Colab上高效地进行数据探索与项目开发。
今天要带领大家爬取到的是豆瓣电影(movie.douban.com/chart) 的前两个电影列表的信息,如下所示
Colab
登录Colab官网(colab.research.google.com/) ,要进入Cloab官网,你需要登录或注册一个Google账号,科学上网。
点击文件里面新建笔记本
点击+ 代码,你就可以开始写代码啦
python爬虫
第一步:通过!pip install requests
引入http请求库,!pip install beautifulsoup4
引入beautifulsoup4库
!pip install requests
!pip install beautifulsoup4
点击运行按钮进行安装
第二步:引入请求库import requests
,用于发送 HTTP 请求和处理响应。引入 BeautifulSoup 库,用于解析 HTML 文档。
import requests
from bs4 import BeautifulSoup
第三步:定义一个函数,用于获取电影列表页面的 HTML 内容
'User-Agent'
:要获得'User-Agent',在浏览器右键点击检查,在控制台输入navigator.userAgent
-
all_movies_text = ''.join([movie.prettify() for movie in movies[:2]])
遍历前两部电影,将其 HTML 内容添加到 all_movies_text 字符串中。 -
通过
response = requests.get(url, headers=headers)
发送 HTTP GET 请求获取页面内容 -
movies = fetch_movie_list(url)
调用 fetch_movie_list 函数获取电影列表页面的 HTML 内容 -
url = 'https://movie.douban.com/chart'
def fetch_movie_list(url):
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 Edg/124.0.0.0'
}
response = requests.get(url, headers=headers)
# 如果请求成功
if response.status_code == 200:
soup = BeautifulSoup(response.text, 'html.parser')
movie_list = [] # 用于存储电影信息的列表
movies = soup.select('#wrapper #content .article .item') # 使用 CSS 选择器定位电影元素
all_movies_text = ''.join([movie.prettify() for movie in movies[:2]])
return all_movies_text # 返回前两部电影的 HTML 内容
else:
print("Failed to retrieve content ")
url = 'https://movie.douban.com/chart'
movies = fetch_movie_list(url)
print(movies)
运行后获取到前两部电影的信息
第四步:prompt 字符串:prompt 是一个包含多行文本的字符串,使用了 Python 中的 f-string 格式化字符串的特性。在字符串中包含了一个名为 movies 的变量,这个变量可能是一个电影列表或者电影相关的信息。字符串中提供了一段说明,提示用户如何获取电影的各种信息,包括电影名、封面链接、简介、评分以及评论人数。提示要求使用括号中的单词作为属性名,并以 JSON 数组的格式返回这些信息。
prompt = f"""
{movies}
这是一段电影列表html, 请获取电影名(name), 封面链接(picture),
简介(info), 评分(score), 评论人数(commentsNumber),请使用
括号的单词作为属性名,以JSON数组的格式返回
"""
print(prompt)
得到结果
第五步:引入dashscope库
!pip install dashscope
第六步:使用 Dashscope 的 API 来与Qwen Turbo 的模型进行交互式对话。
- 导入 dashscope 库
import dashscope
。 - 设置了 API 密钥,这是用来与 Dashscope 的服务进行通信的凭证。
首先登录阿里云(dashscope.aliyun.com/ ),点击立即开通
登录后点击控制台,进入页面后点击API-KEY管理,获取api key
- 定义了一个名为 call_qwen_with_prompt 的函数,该函数用于向 Qwen Turbo 模型提供提示,并接收模型返回的响应。
- 在函数中构造了一个消息列表
messages
,其中包含了用户提供的提示。 - 使用 dashscope.Generation.call 方法调用 Qwen Turbo 模型
dashscope.Generation.Models.qwen_turb
,传递消息列表作为输入messages = messages
,指定要返回的响应消息result_messages = 'message'
。 - 打印模型返回的响应
print(response)
。
import dashscope
dashscope.api_key = 'sk-...'# 这里输入刚刚在阿里云获取的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()
最后得到结果如下所示
Python和Js的区别
之前写了一篇用Node.js如何实现爬虫,那现在来对比一下两种语言的区别:
-
执行环境:
- JavaScript主要用于Web开发,通常在浏览器中执行,但也可以通过Node.js在服务器端执行。
- Python则是一种通用编程语言,广泛应用于Web开发、数据科学、人工智能、系统管理等各个领域。
-
语法:
- JavaScript和Python有不同的语法结构和语法规则。例如,JavaScript使用分号作为语句结束符,而Python使用缩进来表示代码块。
- JavaScript的语法受到C语言和Java的影响,而Python更注重代码的可读性和简洁性。
-
同步异步:
- JavaScript是一种事件驱动的语言,通常采用异步编程模式。它使用事件循环机制和回调函数来处理异步操作。
- Python可以同步编程也可以异步编程。Python的标准库提供了
asyncio
等模块,支持异步编程,但也可以使用多线程或多进程来处理并发任务。
-
面向对象:
- JavaScript是一种面向对象的语言,但它的面向对象特性与传统的面向对象语言(如Java)有所不同。JavaScript使用原型继承而不是类继承。
- Python是一种完全面向对象的语言,支持类和对象,具有传统的面向对象特性,包括封装、继承和多态。
-
类型系统:
- JavaScript是一种弱类型语言,变量的类型可以动态改变。
- Python是一种强类型语言,变量在声明时就确定了其类型,并且类型转换需要显式地进行。
转载自:https://juejin.cn/post/7369492120148656147