烂片休想糊弄我,Python代理爬虫豆瓣电影数据手到擒来
写爬虫防止被封的关键有以下几点:
伪装请求报头(request header)
减轻访问频率,速度
使用代理IP
一般第一点都能做到,第二点减轻访问频率就会大大增加任务时间,而使用代理就能在不增加任务时长避免被封的关键(实际情况却是任务时间因为代理的使用而增加的,但这里不细说,知道就好)。
下面我们从 国内高匿代理IP 获得代理IP数据。
我们准备抓 国内高匿代理IP网 的十个页面的代理
fetch_proxy(10)
当前工作目录下的文件,你看!!有host.txt
打开host.txt,收集到了很多代理IP
但是有代理IP还不行,因为我们不知道这代理能不能用,是否有效。
下面我们用百度网进行检验(大公司不怕咱们短时间内高频率访问),上代码:
运行该代码,效果如下
代理Ip池生成函数
下面开始爬豆瓣电影的电影数据,我们要获取 电影名、演员、评分。
电影标签页 https://movie.douban.com/tag/
烂片详情页https://movie.douban.com/tag/烂片
烂片详情页
我们就只爬烂片标签页的部分数据吧,网页链接规律如下
第一页https://movie.douban.com/tag/烂片?start=0
第二页https://movie.douban.com/tag/烂片?start=20
第三页https://movie.douban.com/tag/烂片?start=40
开始上代码
执行上述写好的代码
Perfect