网站反爬虫主要手段
- 限制单一ip的访问量
服务器端nginx统计ip的一段时间内的访问量(eg:5分钟),如果访问量大于阀值,该ip将被禁止访问服务。简单有效。可以通过代理ip解决该问题。 - User-Agent限制
在使用httpclient、phantomjs等工具访问网站时,如果没有设置user-Agent值,将会使用默认的user-Agent值。 - 限制账户的访问量
如果超过访问量,系统会封号。很有效。 - 检测模拟浏览器
常用检测selenium等自动化工具的方式有两种。一是检测行为特征,二是检测模拟浏览的特征。
检测行为特征:
(1)基于操作:
点击按钮,可以拆分为鼠标按下+鼠标释放以及中间的间隔时间。
输入框,每个输入字符之间的间隔时间。
点击之前是否有移动鼠标的操作,当然操作轨迹不能简单的弄成直线位移。
(2)基于内容:
常见的采集逻辑都是从列表到详情页的。分析url访问记录,可以轻松发现爬虫。
检测浏览器特征:
(1)phantomJS在window中创建了callPhantom和_phantom两个对象。
(2)chromedriver在操作元素的时候会创建cdc_asdjflasutopfhvcZLmcfl_对象。
(3)firefox待补充。 - 通过后台日志分析url请求轨迹。一般的爬虫是不会访问图片和css等资源的,稍加统计就能发现非法请求。
- 蜜罐。比如在html中增加一些带有”display=no