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