python3 使用正则表达式爬取豆瓣影评

 

我们这次要爬取的豆瓣的影评 链接:https://movie.douban.com/review/best/?start=0

一、使用正则表达式的方式

1、爬虫的准备

我们使用Python的第三方库requests,可以在cmd输入pip install requests安装

导入模块

import requests
import re

2、request的使用

首先我们要知道网页分为两种请求,一种是get,另一种是post

python3 使用正则表达式爬取豆瓣影评_第1张图片

我们通过谷歌浏览器看到豆瓣的影评是get请求的

req=requests.get('https://movie.douban.com/review/best/?start=0')
print(req)

输出结果为

200即为请求成功

我们开始下一步,查看网页的源代码,前面的请求就是为获取网页的源代码

txt_1=req.text #req.text返回的是网页的源代码
print(txt_1)

我们将看到网页源代码

3、使用正则表达式获取需要的内容

例如:

我们想要爬取影评的名字以及链接

python3 使用正则表达式爬取豆瓣影评_第2张图片

我们通过查看源代码可以看到

python3 使用正则表达式爬取豆瓣影评_第3张图片

而电影名和链接都在h2的标签如下

深藏于心的那份青涩

douban_link_name=re.findall('''

(.*?)

''',txt_1) for i in douban_link_name: print(i)

输出结果

('https://movie.douban.com/review/9593388/', '深藏于心的那份青涩')
('https://movie.douban.com/review/9592082/', '从《一出好戏》谈反乌托邦:世界尽头与冷酷仙境')
('https://movie.douban.com/review/9590937/', '此味只有天上有')
('https://movie.douban.com/review/9590829/', '秒速五厘米,灵魂飘落的速度')
('https://movie.douban.com/review/9591655/', '不是我剧透,是墙先开的口')
('https://movie.douban.com/review/9590896/', '情书——追忆那逝水年华,一念成殇')
('https://movie.douban.com/review/9591858/', '天这么热,打个的吧')
('https://movie.douban.com/review/9591927/', '打个商量,放过它,不要折腾,算了吧')
('https://movie.douban.com/review/9590031/', '黄渤暗藏的哲思,这篇看得最透——《一出好戏》终极解读')
('https://movie.douban.com/review/9589353/', '鲨鲨这么猛,怎么能拿来做腌鱼干!')

 

4、爬取多页的豆瓣影评

豆瓣的影评第一页的网页链接是https://movie.douban.com/review/best/?start=0

第二页网页链接是https://movie.douban.com/review/best/?start=20

第三页网页链接是https://movie.douban.com/review/best/?start=40

我们得出规律他的链接规律是https://movie.douban.com/review/best/?start=(页数-1)*20

我们在这里写一个迭代器爬取前5页

for number_ in range(5):
    req=requests.get('https://movie.douban.com/review/best/?start=%s'%number_*20)
    # print(req.text)
    douban_link_name=re.findall('''

(.*?)

''',req.text) for i in douban_link_name: print(i)

 

你可能感兴趣的:(python3 使用正则表达式爬取豆瓣影评)