网络爬虫在大多数情况中都不违法,其实我们生活中几乎每天都在爬虫应用,如百度,你在百度中搜索到的内容几乎都是爬虫采集下来的(百度自营的产品除外,如百度知道、百科等),所以网络爬虫作为一门技术,技术本身是不违法的,且在大多数情况下你都可以放心大 胆的使用爬虫技术。当然也有特殊情况,请看下一章节。
可以从以下几点进行考虑
- 限制请求/提交次数,比如每分钟最多请求60次,3分钟最多请求100次。如果超过这种阶梯式的设置次数就进行封禁,凡是这种封禁最好是可解除的,称为临时封禁,还有一种永久封禁,博主就是达到这个峰值的时候直接跳转到验证码页面。
- 保存各大搜索引擎的蜘蛛IP(这个可以查询到的),保存下来放行,但是这个不易维护。
- 判断user_agent头,因为头里有一些搜索引擎的来源(网上有开源的项目包,可以根据user_agent判断系统、浏览器版本型号,感兴趣的可以用一下),但是这个判断user_agent头很容易伪造,并不可靠。
- 页面植入js,如果是浏览器打开就肯定会执行这个js,那么后台拦截这个js的请求,反之则是爬虫。这块的准确率达到了80%以上,甚至90%以上。为什么还有有不准的情况呢,因为有几种情况是统计不到的,比如快速刷新(页面还没完全打开)、网速不好的情况下,页面也会一直在加载。
- 另外可以做一个封杀表,按照IP(全匹配)、user_agent(模糊匹配)两种类型进行封禁,比如user_agent含有Python的,博主认为肯定是爬虫。
页面植入js,如果是浏览器打开就肯定会执行这个js,那么后台拦截这个js的请求,反之则是爬虫。感觉这个很好判断,因为对于爬虫来说它爬到的是数据,并不是要看页面,也就没有浏览器执行js的步骤。