python爬虫豆瓣电影(python爬虫豆瓣电影长津湖)

http://www.itjxue.com  2023-04-13 16:03  来源:未知  点击次数: 

批量爬取豆瓣影视短评步骤

用Python批量爬取滑袜豆瓣影视短评步骤:

1、通过Chrome浏览器检查元素。

2、获取单个页面HTML文本。

3、用正则表达式解析出所需要的信备让和息并存入列仿盯表。

4、将列表中的信息存成csv文件。

5、利用start参数批量爬取其他页的短评。

从零开始学Python爬虫(四):正则表达式

Regular Expression, 正则表达式, 种使 表达式的 式对字符串进 匹配的语法规则。

我们抓取到的 源代码本质上就是 个超 的字符串, 想从 提取内容。 正则再合适不过了。

正则的优点: 速度快, 效率 , 准确性 正则的缺点: 新 上 难度有点 。

不过只要掌握了正则编写的逻辑关系, 写出 个提取 内容的正则其实并不谈旦复杂

正则的语法: 使 元字符进 排列组合 来匹配字符串

在线测试正则表达式网址:

元字符: 具有固定含义的特冲旦殊符号 常 元字符:

量词: 控制前 的元字符出现的次数

贪婪匹配和惰性匹配

这两个要着重的说 下,因为我们写爬 的最多的就是这个惰性匹配。

先看案例

那么接下来的问题是, 正则我会写了, 怎么在python程序中使 正则呢?答案是re模块

re模块中我们只需要记住这么 个功能就 够我们使 了。散侍扰

下面一个案例,是练习用正则表达式提取豆瓣电影top250的数据并保存,一起来学一下吧。

.利用python获得豆瓣电影前30部电影的中文片名,排名,导演,主演,上映时间

热门频道

首页

博客

研修院

VIP

APP

问答

下载

社区

推荐频道

活动

招聘

专题

打开CSDN APP

Copyright ? 1999-2020, CSDN.NET, All Rights Reserved

打扒伍开APP

python 网络爬虫 1.2 获取豆瓣TOP250电影的中英文名桐汪、港台名、导演、上映年份、电影分类以及评分,将数据存入文档。 原创

2021-07-19 01:03:15

2点赞

zynaln

码龄8年

关注

题目:

获取豆瓣TOP250电影的中英文名、港台名、导演、上映年份、电影分类以及评分,将数据存入文档。

代码:

输出结果:

文章知识点与官方知识档案匹配

Python入门技能树网络爬虫urllib

201761 人正在系统学习中

打开CSDN APP,看更多技术内容

最新发布 用python爬取豆瓣影评及影片信息(评论时间、用户ID、评论内容)

用python爬取豆瓣影评及影片信息(评论时间、用户ID、评论内局此仔容)

继续访问

python

写评论

7

14

2

分享

Python爬虫实战(1)requests爬取豆瓣电影TOP250

爬取时间:2020/11/25

系统环境:Windows 10

所用工具:Jupyter Notebook\Python 3.0

涉及的库:requests\lxml\pandas\matplotlib\numpy

蛋肥想法: 先将电影名称、原名、评分、评价人数、分类信息从网站上爬取下来。

蛋肥想法: print数据列表后发现电影原名、分类信息等存在不需要的字符,需预先处理;同时因为后续想做一个豆瓣电影TOP250的维度分布图,而同一电影存在多个发行国家、类型(如“法国 美国 / 剧情祥备 动作 犯罪”),为了简(偷)便(懒),这里均取第一个作为记入的数据;最后将数据保存为xlsx。

蛋肥想法: 蛋肥想知道在豆瓣电影TOP250中年份、国家、类型的维度数据,为了练手,使用刚带余才保存成xlsx的数据,并分别画成雷达图、柱形图、扇谨行毁形图。

Python豆瓣电影《肖申克的救赎》评论爬取

先看效果图:

地址:( ;status=P)

爬取前1w条评论

存储成txt文档

数据预处理

中文分词

统计top10的高频词

可视化展示高频词

根据词频生成词云

审核评论

================================================================

配置准备

中文分词需要jieba

词云绘制需要wordcloud

可视化展示中需要的中文字体

网上公开资源中找一个中文停用词表

根据分词结果自己制作新增词表

准备一张词云背景图(附加项,不做要求)兆伍陵

paddlehub配置

#安装jieba分词和词云

pip?install?jieba

pip?install?wordcloud

#安装paddle

pip?install?--upgrade?PaddlePaddle

#安装模型

#hub?install?porn_detection_lstm==1.1.0

pip?install?--upgrade?paddlehub

pip?install??numpy

#安装Beautifulsoup

pip?install?BeautifulSoup4

Github地址:

有可能遇到的问题:

1.UnicodeDecodeError: 'utf-8' codec can't decode byte 0xe8 in position 1: invalid continuation byte

解决方法:

1.不使用urlLib换做requests

2.去掉请求头中的 'Accept-Encoding': 'gzip, deflate, br'

3.返回值reponse 转字符串指定编码utf-8

# 'Accept-Encoding': 'gzip, deflate, br',

2.关于cookie

解决橘哪方法:

1.去豆瓣请求头中复制cookie设置到请求头中

'Cookie': 'bid=WD6_t6hVqgM'

3.请求返回418的问题

解决方案模族戚拟设置请求头,设置user-agent

'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/94.0.4606.81 Safari/537.36',

4.使用beautifulsoup获取不到评论

解决方法:

第一步:指定解析参数为'lxml'

soupComment = BeautifulSoup(html, 'lxml')

第二步:

findAll方法指定css文件的class名

print('网页内容:', soupComment.prettify())

comments = soupComment.findAll(class_='short')

点击获取源码

python爬虫看电影会有什么影响

闲着在家想看电影,但是猛地不知道要看啥电影,脑子想半薯销天也想不出来一个好电影名字!干脆直接在豆瓣电影上获取最近热门的电影,然后一个一个挨着看打发时间!

获取豆瓣电影信息也是学爬虫的一个入门例子,不知道为啥好多人学爬虫都拿豆瓣电影来练手,一个应该是爬取数伏游比较简单,另一个应该是这个平台反爬措施比较low,接下来让我们来看看怎么去实现获取豆瓣电影前200个热门电影信息!

1.请求数据

第一步先打开豆瓣电影网页厅衫,分析请求看怎样才能请求到数据。

刷新豆瓣电影网页,从浏览器自带的开发工具network中XHR可以看到各种请求,其中标黄的search_subject?type_movie这个请求就是请求电影信息,下面的type_tv就是请求电视剧信息的。从右边标黄的request url中看到是请求的链接,但参数信息都被编码,用urllib.parse.unquote()方法来进行解码:

解码后的请求连接如图所示,猜想page_limt为每次请求到的数据量,page_start为从第几页开始请求,将这个链接在浏览器中打开来验证一下猜想。

看到返回的是一个json字符串,里面包含50条电影信息,其中有名字,评分,链接等,将page_start = 0 变为1,就请求到下一个50条信息。根据链接的这个规律,可以对page_start 不断赋值,从而实现多条信息的获取!(公众号 ly戏说编程)

第二步构造请求头,即看看浏览器通过这个链接向服务器发送了什么请求参数才拿到这些json数据,打开浏览器开发者工具。

按照图中1到4步可以看到这个请求的request headers,将请求头里面的信息全部拿出来,构造为爬虫的请求头。

坑:请求头构造的时候Accept-Encoding要将br去掉。原因:Accept-Encoding用来声明浏览器支持的编码类型,一般有gzip,deflate,br 等等。但在python3的requests包中:

response.content 字节方式的响应体,会自动为你解码 gzip 和 deflate 压缩 类型:bytes

reponse.text 字符串方式的响应体,会自动根据响应头部的字符编码进行解码。类型:str

但偏偏不支持br的解码,如果加上br可能造成你请求回来的是乱码!所以要去掉br!

这样通过模拟浏览器请求数据,就可以得到服务器返回的json字符串,再解析json字符串得到每一个电影的详情链接。

2.提取信息

在得到每一个电影的链接后,依次访问每一个电影的链接,然后根据关键信息所在标签用xpath进行提取。这里只对电影名字、年份、导演、类型、评分进行提取。

例如提取1917,在网页右击“1917”,然后选择检查,在Elements中1917所在位置右击,选择Copy,然后Copy XPath即可拿到1917的Xpath路径,其它信息的提取操作步骤一样。

但是不同电影网页里面相同类型的信息所在的XPath路径可能不同,这就需要找到他们的相同处,提取相同的XPath路径,从而进行大批量提取。

比如电影类型,用直接copy xpath的方法就不好使,不同电影网页里面电影类型所处的标签位置不同,用copy xpath拷贝出来的路径有差异,这就需要根据所在标签的property属性来获取。主要代码如下:

对每一网页链接里面的信息进行提取,这里每提取一个就停1s,为的是避免平台检测到异常访问,这样就拿到每一个电影的信息,然后再将这信息保存到excel中,效果如图所示

前几名都是奥斯卡得奖电影有木有!感兴趣的小伙伴快来试试!话不多说,挨着去看电影咯!去哪看?去公众号 ly戏说编程 首页vip影院看,里面还有各种学习资源免费分享!

(责任编辑:IT教学网)

更多

推荐人物新闻文章