您的位置:新闻资讯 >文章内容
爬虫遇到IP限制和访问时间间隔限制,怎么办?
来源:精灵代理 作者:admin 时间:2019-11-25 14:31:27

  爬虫遇到IP限制和访问时间间隔限制,怎么办?掌握了爬虫应该学习的内容,我们不可避免的就会遇到反爬虫的问题,像时间限制、IP限制、验证码限制等等,都可能会导致爬虫无法进行,所以也出现了很多像代理IP、时间限制调整这样的方法去接触反爬虫限制,当然具体的操作方法需要你针对性的去研究。

爬虫遇到IP限制和访问时间间隔限制,怎么办

  1、使用代理IP破解IP限制

  对于一些保存重要信息的网站,它的反爬技术会比较严密,它会严苛检查每一个IP的请求操作,然后对于可能是异常的请求,返回某一页面给对应请求或是提示需要登录信息等等甚至可能把相应的IP拉入黑名单。

  这个时候我们可能就需要代理IP来隐藏我们的身份,以及通过更换IP来达到不断爬取数据的目的。

  那么这些代理IP要从哪儿获取呢?如果你百度,其实会有蛮多免费代理IP的网站,里面会有很多的代理IP,但是不要太开心,因为这里的代理IP大都不稳定甚至失效(不然为什么那么多都要钱呢),所以当你批量爬下来代理IP后,还需要再单独写一个程序,去利用每一个IP请求一个一定有的网站,例如百度,如果这个IP的requests.get(‘http://www.baidu.com‘, proxies = proxy)(这里的proxy就是你的IP地址)访问成功了,才能说明这个IP是可用的。

  当然,如果有成本,可以尝试使用付费代理IP,因为这样获得的IP会稳定很多,比如使用精灵代理,可用的IP数量多,质量也好,当然会节省很多时间,还能提高爬虫的效率。

  2、调用time.sleep()函数破解间隔时间限制

  通常对于某些网站,在我们发送请求后,因为访问速度过快,网页会很快发现我们的IP地址在一段时间内,多次像页面发送请求。对于一般的网站,它的反爬技术很可能就是利用公式计算某一IP地址在一段时间内发送请求的次数,因为一个正常人,在一定时间的请求都是有限的。

  所以,对于这种情况,我们可以简单的尝试在爬虫的过程中,对我们的程序进行适当的延时,调用time.sleep()函数。这样既不会过快的访问网页,对对方的服务器产生严重的垃圾和负担,也可以防止程序被迫中止。

  举一个例子就是,当初我们尝试封锁IP破解的时候(接下来我说到),我找到了一个免费代理IP的地址,于是我就要想办法批量的把IP地址爬下来,然后在进行测试,因为免费的代理IP大都性能不好或者已经不能用了。这个时候当我第一次爬的时候,没有爬完一页程序就被迫中止了,(因为返回的页面内容变了),我就知道遇到了反爬,那么我首先尝试的就是利用时间延时,方法就是调用time.sleep()函数,并把延迟时间定为3s,没想到程序就顺利运行了,成功的爬了10页的代理IP地址。

  所以在遇到反爬时,如果你觉得你访问的页面是一般网站,不是那种存着比较重要信息的网站,可以首先尝试利用时间延时。推荐阅读:解析免费IP代理中的“免费”

  以上就是爬虫遇到IP限制和访问时间间隔限制的解决方法。合理的利用各种工具来伪装自己,可以帮助爬虫顺利的躲过检测,并能完成采集任务。

相关文章内容简介
在线咨询
大客户经理
大客户经理
13318873961

大客户经理微信

微信公众号

微信公众号

回到顶部