本篇内容主要讲解“怎么使用Python采集电影评论”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“怎么使用Python采集电影评论”吧!
发送请求
我们首先确定我们的目标网址,对我们需要获取的数据。
我们要把每一个评论获取下来,我们接下来用到开发者工具。我们看评论是在什么位置。是不是在网页源代码中。接下来,我们发送请求,获取网页源代码。
url = 'https://movie.douban.com/subject/35267208/comments' params = { 'start': f'{num}', 'limit': '20', } headers = { 'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/110.0.0.0 Safari/537.36', } res = requests.get(url, headers=headers, params=params) print(res)
这段代码中,我们首先定义了一个 URL,然后使用
requests.get()函数获取该 URL 的数据,并将其存储在
res变量中。最后,我们打印出
res变量的值,即获取到的数据。
在这个例子中,我们使用了
params参数来指定获取数据的起始位置和每页显示的记录数。在这个例子中,我们指定了起始位置为第
num条记录,每页显示
limit条记录。
请注意,这个例子中使用的
user-agent头部是为了模拟浏览器的行为。在实际应用中,我们应该使用
User-Agent头部来指定我们的请求类型,例如
requests.get()函数默认使用
'requests/2.18.4'作为 User-Agent。
解析数据
我们还可以获取其他信息,比如讲,地区,时间之类的。
我们先解析数据。
selector = parsel.Selector(res.text) info_lists = selector.css('div.comment-item')
这段代码中,我们首先使用
parsel库中的
Selector类来解析
res.text中的内容,并将其转换为 CSS 选择器。然后,我们使用
css方法来获取 CSS 选择器中的所有
div元素,并将其存储在
info_lists变量中。
需要注意的是,
parsel库中的
Selector类是一个比较底层的 CSS 解析器,它并不会对 CSS 选择器进行任何优化或转换。因此,在使用
Selector类时,我们需要确保输入的 CSS 选择器是有效的,并且不会包含任何无效的 CSS 属性或值。
获取内容
for info_list in info_lists: # print(info_list) name = info_list.css('.comment-info a::text').get() rating = info_list.css('.rating::attr(title)').get() times = info_list.css('.comment-time::attr(title)').get() area = info_list.css('.comment-location::text').get() vote_count = info_list.css('.vote-count::text').get() short = info_list.css('.short::text').get()
这段代码中,我们使用
for循环遍历
info_lists中的每一个元素,并使用
css方法获取该元素的
text属性值。然后,我们使用
get()方法获取该属性值的
title属性值,并将其存储在
name变量中。接着,我们使用
get()方法获取该属性值的
title属性值,并将其存储在
rating变量中。最后,我们使用
get()方法获取该属性值的
title属性值,并将其存储在
times变量中。最后,我们使用
get()方法获取该属性值的
title属性值,并将其存储在
area变量中。最后,我们使用
get()方法获取该属性值的
title属性值,并将其存储在
vote_count变量中。最后,我们使用
get()方法获取该属性值的
title属性值,并将其存储在
short变量中。
输出内容
print(name, rating, times, area, vote_count, short)
这段代码中,我们使用
print()函数打印出了名称、评分、时间、地点、投票数和简短描述。