专栏名称: 待字闺中
深度分析大数据、深度学习、人工智能等技术,切中实际应用场景,为大家授业解惑。间或,也会介绍国内外相关领域有趣的面试题。
目录
相关文章推荐
sven_shi  ·  我回答了 @乐把金针度与人 ... ·  6 天前  
OSC开源社区  ·  苹果有开源(中):浏览器二战功臣WebKit ... ·  1 周前  
少数派  ·  iOS、Android、PC ... ·  1 周前  
少数派  ·  iOS、Android、PC ... ·  1 周前  
笔记侠  ·  勇气,就是人生的底气 ·  1 周前  
51好读  ›  专栏  ›  待字闺中

大数据时代的反爬虫绝技

待字闺中  · 公众号  · 程序员 科技自媒体  · 2016-09-17 15:41

正文

说明:

1. 这是之前的一篇老文章。但最近很多人问反爬技术,所以再次发表。

2. 本人做过多年的爬虫系统,做过几个不同版本的爬虫,有这方面的问题和咨询,请联系。


网络爬虫已经成了很普及的网络技术,会代码的可以自己捣鼓一个高级的“人工智能”爬虫,不会的也可以从网上下载一个开源的,然后找个机器或一些代理服务器,就可以肆无忌惮的薅羊毛了。轻的是,爬虫占用网络和机器资源,影响网站服务访问速度。重的是窃取宝贵的版权数据,尤其是数据时代,数据经常会是一个公司的核心竞争力。所以,爬和反爬永远是一个攻防战斗。


今天,我们就来回顾现有的反爬虫技术。最后揭示了两个反爬虫绝技。


反爬虫技术:


统计IP访问(TCP/IP层面)


同一IP短时间内多次访问同一页面,或是同一账户短时间内多次进行相同操作。这个,基于IP或是cookie的访问日志统计,或是实时的访问统计,都可以发现爬虫,进而用captcha来测试,或是直接iptable来屏蔽。


复杂一些的情况是获取很多的IP,然后,每次访问随机的选取IP,对于这种情况,必须求助与基于用户行为的反爬技术。


检测HEADER(HTTP协议层面)


早期的爬虫不大用心,经常会随便写个user-agent,或是省略了referer,这种很好检测。变得聪明后,它们开始模拟不同的user-agent和referer了。但cookie这个东西,由于server可以快速随机变化,而且是传递状态信息的,给爬虫的编程带来了一些难度,但也不是不可以逾越的。


侦测用户行为(浏览器层面)


账号注册登录,javascript和AJAX的动态页面和动态数据请求,图片表示和captcha,这些都是利用用户行为的反爬虫技术,而且得到了广泛的采用,而且取得了很好的效果。


道高一尺,魔高一丈,现在流行的”人工智能“爬虫,哈哈,人工智能很流行,我们也借用一下。实际上,它是机器调用浏览器内核,然后利用类似phantomJS等来执行JS来模拟人的操作以及触发页面中的JS脚本。它可以填写表单,点击按钮,滚动页面,总之,完完整整的把人浏览页面获取数据的过程模拟一遍。对于手机APP,也有类似的模拟触屏和点击的工具,完全可以模拟用户行为完成微信登录,关注公众号,点击文章,采集文章内容,阅读量,点赞数,总之,就和一个真实的人一样。对于这种情况,很多具有数据的公司,基本束手无策。


今天,我们揭示两个反击”人工智能“的两个杀手绝技。


第一,数据玷污!是的,玷污,就是真的,假的,数据混杂在一块,让你拿到了我的数据,也很难清理和使用。具体怎么做,先抛一个,比如,captcha,不管对错,都会给出数据,对了,给出正确数据,错了,对不起,数据可能是玷污之后的。哈哈,you got it!想知道更多?你知道怎么做。


第二,交押金!是的,押金,不是付费。用户,先交一部分押金,每次访问关键数据,会从押金里扣除一部分。一周或一月后,后台系统根据日志做个统计挖掘,或是”深度学习“一下,看看哪些是真实的用户,对于这些,退还押金重新获取新的访问。对于爬虫用户,对不起,钱被没收了!


好了,今天就说这么多,希望反爬最终能战胜爬,至少耗死爬虫,或是让爬虫付出高昂代价。


大家可能还感兴趣:



谢谢。