第一课、《Python爬取豆瓣电影TOP250》
文章目录
1、准备工作
1.安装
python,并安装jupyter库,便于使用jupyter notebook编辑页面。
2.建立环境
新建一个文件夹,在文件夹的路径栏输入CMD进入命令提示符页面,输入 pip install jupyter安装jupter。
新建文件夹
进入命令提示符安装jupyter
3.进入编辑环境
安装完成后,在命令提示符中输入jupyter notebook进入编辑环境
(请勿关闭该窗口,否则打开的环境会被报错)
进入编辑环境
新建一个项目
打开后,如图所示
2、分析网页
1.打开豆瓣top250网页
2.分析网页链接
选取多页网页的链接,分析起规律
第一页:https://movie.douban.com/top250
第二页:https://movie.douban.com/top250?start=25&filter=
第三页:https://movie.douban.com/top250?start=50&filter=
第四页:https://movie.douban.com/top250?start=75&filter=
最后一页:https://movie.douban.com/top250?start=225&filter=
可以发现从第二页起,每一页的链接有变化的是“start=”后的数字,且每次变化的值都为25,我们可以反推第一页的网页链接为
https://movie.douban.com/top250?start=0&filter
3、爬取网页
1.根据分析的结果用for循环爬取所有链接
for page in range(0, 226, 25):
url = 'https://movie.douban.com/top250?start=%s&filter='%page
最后一页网页链接start后的数值为255,在for循环中如果写的上限为255则取不到该值,需要往上加一个数,所以上限写为226
2.请求网页源代码
实现这个目的,需要在python中安装request库,同样的也是在命令提示符中输入为pip install requests
在进行请求之前,我们需要到对应的网站上去查询该网页的请求网址、请求方法以及请求成功的状态码
查询上面参数的操作方法如下:
(1)在网页中点击鼠标右键,并点击检查
(2)点击检查后网页变为下列形式
(3)按照下列顺序点击,进入查看页面
(通常情况下需要刷新一遍网页才会出现相应的内容)
在这里我们可以看到,该网页的请求方式为GET,请求成功状态码为200。
(4)得到这些内容后,我们可以开始请求该网页了。
import requests
test_url=’ https://movie.douban.com/top250?start=0&filter=’
requests.get(url= test_url)
requests表示库名,.get表示请求方法(网页中看到的是get),括号中的内容为网页的链接
运行结果如下:
返回的值为418不是200,说明我们的方法出现了一些问题。浏览器识别出这个语句是爬虫程序,故拒绝返回值给我们,至此,我们需要伪装浏览器。
3.伪装浏览器
将程序伪装成正常的用户访问,躲过浏览器的识别,以便成功获取数据。
首先,将代码审查中的用户代理复制过来,并将其构造成一个字典。
(1)网页的用户代理查看方式
(2)在我们上面的代码中加入该代理
import requests
test_url = 'https://movie.douban.com/top250?start=0&filter='
headers =