网页如何判断一个请求来自于爬虫?

网络爬虫在大多数情况中都不违法,其实我们生活中几乎每天都在爬虫应用,如百度,你在百度中搜索到的内容几乎都是爬虫采集下来的(百度自营的产品除外,如百度知道、百科等),所以网络爬虫作为一门技术,技术本身是不违法的,且在大多数情况下你都可以放心大 胆的使用爬虫技术。当然也有特殊情况,请看下一章节。

可以从以下几点进行考虑
  1. 限制请求/提交次数,比如每分钟最多请求60次,3分钟最多请求100次。如果超过这种阶梯式的设置次数就进行封禁,凡是这种封禁最好是可解除的,称为临时封禁,还有一种永久封禁,博主就是达到这个峰值的时候直接跳转到验证码页面。
  2. 保存各大搜索引擎的蜘蛛IP(这个可以查询到的),保存下来放行,但是这个不易维护。
  3. 判断user_agent头,因为头里有一些搜索引擎的来源(网上有开源的项目包,可以根据user_agent判断系统、浏览器版本型号,感兴趣的可以用一下),但是这个判断user_agent头很容易伪造,并不可靠
  4. 页面植入js,如果是浏览器打开就肯定会执行这个js,那么后台拦截这个js的请求,反之则是爬虫。这块的准确率达到了80%以上,甚至90%以上。为什么还有有不准的情况呢,因为有几种情况是统计不到的,比如快速刷新(页面还没完全打开)、网速不好的情况下,页面也会一直在加载。
  5. 另外可以做一个封杀表,按照IP(全匹配)、user_agent(模糊匹配)两种类型进行封禁,比如user_agent含有Python的,博主认为肯定是爬虫。

页面植入js,如果是浏览器打开就肯定会执行这个js,那么后台拦截这个js的请求,反之则是爬虫。感觉这个很好判断,因为对于爬虫来说它爬到的是数据,并不是要看页面,也就没有浏览器执行js的步骤。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值