烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

写爬虫防止被封的关键有以下几点:

伪装请求报头(request header)

减轻访问频率,速度

使用代理IP

一般第一点都能做到,第二点减轻访问频率就会大大增加任务时间,而使用代理就能在不增加任务时长避免被封的关键(实际情况却是任务时间因为代理的使用而增加的,但这里不细说,知道就好)。

下面我们从 国内高匿代理IP 获得代理IP数据。

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

我们准备抓 国内高匿代理IP网 的十个页面的代理

fetch_proxy(10)

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

当前工作目录下的文件,你看!!有host.txt

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

打开host.txt,收集到了很多代理IP

但是有代理IP还不行,因为我们不知道这代理能不能用,是否有效。

下面我们用百度网进行检验(大公司不怕咱们短时间内高频率访问),上代码:

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

运行该代码,效果如下

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

代理Ip池生成函数

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

下面开始爬豆瓣电影的电影数据,我们要获取 电影名、演员、评分。

电影标签页 https://movie.douban.com/tag/

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

 

烂片详情页https://movie.douban.com/tag/烂片

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

烂片详情页

我们就只爬烂片标签页的部分数据吧,网页链接规律如下

第一页https://movie.douban.com/tag/烂片?start=0

第二页https://movie.douban.com/tag/烂片?start=20

第三页https://movie.douban.com/tag/烂片?start=40

开始上代码

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

执行上述写好的代码

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

Perfect

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来

 

烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来