Python采集电影评论实战示例
作者:极客飞虎 发布时间:2022-02-25 22:14:37
数据采集
我们上一篇介绍了,如何采集王者皮肤,买不起皮肤,当个桌面壁纸挺好的。我们今天来学习如何采集电影评论,看看这个电影好不好看。
发送请求
我们首先确定我们的目标网址,对我们需要获取的数据。
我们要把每一个评论获取下来,我们接下来用到开发者工具。我们看评论是在什么位置。是不是在网页源代码中。接下来,我们发送请求,获取网页源代码。
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()
函数打印出了名称、评分、时间、地点、投票数和简短描述。
来源:https://juejin.cn/post/7222189908428324901
猜你喜欢
- 本文实例讲述了Python3.5局部变量与全局变量作用域。分享给大家供大家参考,具体如下:1、局部变量与全局变量定义:在子程序(函数)中定义
- 最近在学习关于Python数据分析与挖掘方面的知识,在学习到Python数据分析工具方面时,需要安装一些第三方扩展库来增强Python的数据
- 4. 选择最有效率的表名顺序(只在基于规则的优化器中有效)ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名,因此FROM子句中
- 如何用HtmlEncode来显示Unicode? 见下:<%@ Language=VBS
- 多态多态:顾名思义九四多种形态\状态,就是同一种行为对不同的子类[对象]有不同的行为表现要想实现多态 必须有两个前提需要遵守:1.必须存在一
- 本文实例讲述了Python数学形态学。分享给大家供大家参考,具体如下:一 原始随机图像1、代码import numpy as npimpor
- 前言本篇给大家分享一下《通过Python的pdfplumber库将pdf转为图片》。一、pdfplumber库是什么?pdfplumber是
- 前言 简述bs4:使用pip install beautifulsoup4将bs4包安装到当前的python解释器环境,使用fro
- 目录生成迷宫走出迷宫可视化总结相信大家都玩过迷宫的游戏,对于简单的迷宫,我们可以一眼就看出通路,但是对于复杂的迷宫,可能要仔细寻找好久,甚至
- 1.代码编辑 字体大小设置进入 File—》Settings—》Editor—》Colors & Fonts—》Font中。首先要点
- 大家知道,在js里encodeURIComponent 方法是一个比较常用的编码方法,但因工作需要,在asp里需用到此方法,查了好多资料,没
- 0. 前言周日在爬一个国外网站的时候,发现用协程并发请求,并且请求次数太快的时候,会出现对方把我的服务器IP封掉的情况。于是网上找了一下开源
- 2007年1月,国务院 * 了中央“一号文件”,文件中对加快农业信息化建设有了更明确的部署,为新农村建
- 1、说明tqdm是一个方便且易于扩展的Python进度条,可以在python执行长循环时在命令行界面实时地显示一个进度提示信息,包括执行进度
- 很多人喜欢玩抖音,我也喜欢看抖音小姐姐,可拿着手机一个个找视频太费劲。作为一个程序员,如何能在电脑前一边编程一边轻松地看抖音小姐姐呢?下面利
- 学习Python网络通信的时候发现书上只有一个服务端对应一个客户端的情形,于是自己想自己动手实现一个服务端响应多个客户端。首先建立服务器的s
- 当很多人发现在DW4中定义CSS很方便的时候,开始报怨FP2000不能定义CSS,甚至就此抨击FP2000如何的不好。事实上,在FP2000
- 双向链表一种更复杂的链表是“双向链表”或“双面链表”。每个节
- 前言上篇文章相信大家已经了解了pytest在cmd下结合各种命令行参数如何运行测试用例,并输出我们想要看到的信息。那么今天会讲解一下pyte
- 前言用python编程绘图,其实非常简单。中学生、大学生、研究生都能通过这10篇教程从入门到精通!快速绘制几种简单的柱状图。1垂直柱图(普通