爬虫行动被限制?一招破解!

爬虫行动被限制,改换ip只是其中一个办法
知己知彼百战不殆,对于竞争对手或者目标消费群体的数据收集,我们乐此不疲。在ip代理盛行的今天,爬虫技术已经可以被我们充分发挥,海量收集数据,毫不手软。如果不用代理ip,我们的爬虫行动往往会受到很多限制,以致最终被完全封锁掉。有什么方法能避免呢?往下看。

1.验证码
我们在很多网站会遇到,如果请求量大了之后就会遇到验证码的情况。最让人诟病的12306,其实也是一定程度上的防止非正当请求的产生。
对于验证码,可以通过OCR来识别图片,Github上面有很多大神分享的代码可以用,可以去看看。

2.Headers限制
这应该是最常见的,最基本的反爬虫手段,主要是初步判断你是否是真实的浏览器在操作。
这个一般很好解决,把浏览器中的Headers信息复制上去就OK了。
值得注意的是,很多网站只需要userAgent信息就可以通过,但是有的网站还需要验证一些其他的信息,比如知乎,有一些页面还需要 authorization 的信息。所以需要加哪些Headers,还需要尝试,可能还需要Referer、Accept-encoding等信息。

3.返回伪造的信息
这个真的是程序员何苦为难程序员。反爬虫的工程师也是煞费苦心,一方面是不让真实的数据被大规模爬取,另一方面也给你后期的数据处理增加负担。如果数据伪造的好,可能你真的不容易发现自己爬的是假数据,当然只能依靠你后期去清洗这些数据了。

4.减少返回的信息
最基本的隐藏真实的数据量,只有不断加载才能刷新信息。还有的就更变态,会只给你展示一部分信息,人都看不到,爬虫也无能为力。比如CNKI,你每次搜索能够得到的内容就是非常有限的。这个貌似没有很好的解决办法,但是这么干的网站毕竟是少数,因为这种方式,其实在某种程度上是牺牲了一部分真实用户的体验。

5.动态加载
通过异步加载,一方面是为了反爬虫,一方面也可以给网页浏览带来不同的体验,实现更多的功能。很多动态网站都是通过ajax或者JavaScript来加载请求的网页。
在遇到动态加载的网页的时候就需要去分析ajax请求,一般情况都能直接找到包含我们想要数据的json文件。
如果网站给文件加密,那么可以通过selenium+phantomJS框架,调用浏览器内核,并利用phantomJS执行js来模拟人为操作以及触发页面中的js脚本。理论上selenium是比较全能的爬虫方案,因为这个确实算是真实的用户行为。除非网站的反爬虫严苛到宁愿误杀的地步。

6.IP限制
限制IP也是很多网站反爬虫的初衷,有些人随便写一个循环,就开始暴力爬取 ,确实会给网站服务器带来很大的负担,而这种频繁的访问,显然也不会是真实用户行为,索性果断把你封掉。
这种情况,你可以遵守规则,把你爬取的速度变慢,每次爬取停个几秒就行了。
time.sleep(5)1
当然,你也可以通过不断换IP的形式来绕过这种限制,网上很多免费的IP资源,你可以自己搭一个IP池,爬到一定的量就切换IP。付费资源则可以选择一些换IP软件比如太阳ip软件来帮助自己完成。


来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/31561288/viewspace-2219785/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/31561288/viewspace-2219785/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值