茂汶论坛
Would you like to react to this message? Create an account in a few clicks or log in to continue.

如何突破豆瓣爬虫限制频率

向下

如何突破豆瓣爬虫限制频率 Empty 如何突破豆瓣爬虫限制频率

帖子  小鱼啊 周二 四月 18, 2017 2:58 am

如何突破豆瓣爬虫限制频率
最近正在做一个课题豆瓣好友推荐。要做推荐,首先是要搜集豆瓣数据了。
于是,我收集了 5000 多个豆瓣用户首页的 url ,接着就是对 5000 多个用户所看过电影相关信息进行爬取。
我用 ruby 写了程序,开了 4 个线程,对豆瓣电影信息进行异步爬取,一分钟可以 get 到230 多个页面,效率很好。但是,没过多久,就h会出现403的错误了!豆瓣把我 ip block了,不能继续抓取了。
然后我在百度上搜索相关资料,发现豆瓣对访问频率做了限制,每分钟最多大概只能访问 40-50 次左右。
现在我只能主动降低了爬取频率,正在慢慢爬取中。
这是我第一次 ruby 网络爬虫,请问有没有什么方法比如通过代理IP可以突破豆瓣的爬虫限制,让我能够方面的的爬虫。
用带 bid (可以伪造)的 cookie 去访问,不会 遇到403错误 ,但是频率高的时候会让输验证码,验证码还是很好搞定的,都是英文单词,而且词库有限,可以自己去识别。
做好 cookie UA 伪装,豆瓣带 cookie 的抓取保持一定节奏不会被 403 ,会跳转验证码,把验证码简单二值化然后扔给开放的验证码识别接口 ,然后走下英文单词纠错(豆瓣验证码基本都是英文单词),自动识别率基本是超过 30%
找到这个节奏的最大并发限制,然后慢慢抓,不行可以开多 ip 代理这么抓。
另外就是通过代理ip htt://www.xicidaili.com 来挂代理抓取,一个代理ip服务器被封后,再更换ip代理就可以了。
几个月前抓豆瓣基本是这么写的。先大概计算下需要抓的页面数量级,有时候 1 秒一个页面,慢慢抓,抓几天也能满足需要,不行再上代理。

小鱼啊

帖子数 : 3225
注册日期 : 14-07-06

返回页首 向下

返回页首


 
您在这个论坛的权限:
不能在这个论坛回复主题