注册
登录
提问时间:2019/5/13 10:43:28    楼主:未知网友   阅读量:45

很多朋友在使用了优质稳定代理IP、控制了访问速度和次数、设置了UserAgent、Referer等一系列方式的情况下,发现爬虫工作还是会遇到各种不好的情况,导致爬虫工作总是不那么顺利的进行,无法高效的爬取大量数据,按时完成每天的工作任务,问题出在哪里呢,有什么好的解决办法呢?

一、验证码问题

爬虫爬久了,经常会遇到验证码问题,这是让你输入验证码验证是否机器人,并不是说已经识别了您是爬虫机器人;此时有三种解决方法:

1、把验证码down到本地之后,手动输入验证码验证,此种成本相对较高,而且不能完全做到自动抓取,需要人为干预。

2、图像识别验证码,自动填写验证,但是现在的情况是大部分验证码噪声较多复杂度大,对于图像识别不是很熟悉的很难识别出正确的验证码。

3、接入自动打码平台,这个最方便使用,代价只是需要一些money。

二、多账号反爬

有很多的网站会通过单位时间内同一个账号下的访问频次来判断是否机器人,比如像淘宝、新浪微博等网站,这种情况我们可以测试单账号下的抓取阈值,然后在将达到阈值时切换账号切换代理IP,如此循环抓取,当然淘宝、新浪微博还有其他反爬虫策略。

三、分布式爬虫

分布式能在一定程度上起到反爬虫的作用,当然相对于反爬虫分布式最大的作用还是能做到高效大量的抓取。

四、保存cookies

在模拟登陆十分麻烦的情况下,我们不妨直接在web上登陆之后取下cookie并保存,然后带上cookie做爬虫,但这不是长久的方法,而且cookie隔一段时间可能会失效。有的网站会根据cookie中的一些值去判断是否机器人,比如豆瓣,这个需要自己去不断的测试。

不同的网站有不同的反爬虫策略,不能一套爬虫策略搬来搬去在任何网站上适用,我们要具体情况具体分析,这个分析的过程就是不断测试的过程,弄清楚了目标网站的反爬虫策略,那么久成功了一大半,接下来就是制定反反爬虫策略了。