中国IDC圈3月23日报道,网络爬虫已经成了很普及的网络技术,会代码的可以自己捣鼓一个高级的“人工智能”爬虫,不会的也可以从网上下载一个开源的,然后找个机器或一些代理服务器,就可以肆无忌惮的薅羊毛了。轻的是,爬虫占用网络和机器资源,影响网站服务访问速度。重的是窃取宝贵的版权数据,尤其是数据时代,数据经常会是一个公司的核心竞争力。所以,爬和反爬永远是一个攻防战斗。
今天,我们就来回顾现有的反爬虫技术。最后揭示了两个反爬虫绝技。
反爬虫技术:
统计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!想知道更多?你知道怎么做。
第二,交押金!是的,押金,不是付费。用户,先交一部分押金,每次访问关键数据,会从押金里扣除一部分。一周或一月后,后台系统根据日志做个统计挖掘,或是”深度学习“一下,看看哪些是真实的用户,对于这些,退还押金重新获取新的访问。对于爬虫用户,对不起,钱被没收了!
好了,今天就说这么多,希望反爬最终能战胜爬,至少耗死爬虫,或是让爬虫付出高昂代价。