美文网首页Java 杂谈Java
反爬虫机制与应对方法

反爬虫机制与应对方法

作者: bugWriter_y | 来源:发表于2019-08-21 20:30 被阅读0次
spider.jpg

终极反爬虫:让爬虫爬假数据或者假页面(和真的结构上几乎没有区别),让爬虫开发者意识不到自己的错误。最后爬虫开发者被离职~~

1. 请求头验证。

浏览器访问网站的时候除了会发送url,参数等内容外,还会给服务器端传递一些额外的请求头(request header)。例如User-Agent,referer,host等等。简单的爬虫不做处理发送请求相关的请求头要么为空,要么没有,要么内容不对。

反爬虫

我们可以在服务端通过请求头的验证来预防简单的爬虫

应对方法

爬虫程序设置合适的请求头来模拟浏览器的访问

2. ip访问频率限制

反爬虫

服务端可以增加对ip访问频率的限制,当超过频率就可以认为是爬虫

应对方法

我们可以设置每一次爬取的时间间隔(或者随机时间间隔更好)长一点儿。或者通过伪装ip,ip代理的方式来设置不同的ip地址。

  • 伪装ip

爬虫增加x-forwarded-for请求头设置随机ip地址。

  • 使用ip代理

实现准备大量的ip代理服务器组成ip池,然后每一次请求都从ip池中取一个作为ip代理服务器发送请求

反爬虫
  • 针对第一种应对方法我们可以在对外的nginx反向代理中设置x-forwarded-for请求为
#proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;#配置了这个服务端才能拿到真实的IP地址
proxy_set_header X-Forwarded-For $remote_addr;#最外层的nginx直接覆盖掉x-forwarded-for请求头内容为真实ip

3. 蜜罐技术

反爬虫

在网页中设置一些隐藏的链接,这些链接在浏览器上是看不到的,所以用户也是点击不到的。但是爬虫有可能会点击到。如果有请求点击到了,可以认为是爬虫

应对方法

需要手动去研究网页的内容了,找出这些链接的规律然后排除

4. 不同类型的源代码格式

反爬虫

相同类型的网页用不同的格式来编写页面,这样爬虫开发者在分析页面的时候可能会遇到困难

应对方法

没办法,研究页面

5. 验证码,滑动解锁之类

反爬虫

需要用户输入验证码或者滑动解锁以后才能进行登陆

应对方法
  • 验证码的话,可以考虑机器学习图像识别来训练验证码识别模型
  • 滑动解锁可以考虑使用selenium结合图像识别来自动滑动滑块实现滑动解锁

相关文章

  • scrapy框架-反爬虫与绕过方法+setting动态配置

    反爬虫与绕过方法 反爬虫的技术越来越丰富,种类也越来越多,以下归纳爬虫与反爬虫的应对措施和绕过方法。 甲.对网站感...

  • 反爬虫机制与应对方法

    终极反爬虫:让爬虫爬假数据或者假页面(和真的结构上几乎没有区别),让爬虫开发者意识不到自己的错误。最后爬虫开发者被...

  • 爬虫基础系列urllib——构造请求头(3)

    爬虫与反爬虫 爬虫:自动获取网站数据的程序 反爬虫:使用技术手段防止爬虫程序爬取数据 反扒机制1 判断用户是否是浏...

  • 网站反爬虫

    爬虫和反爬虫作为相生相克的死对头,无论爬虫多厉害,都是能被复杂的反爬虫机制发现,同样的,无论反爬虫机制多么缜...

  • python+selenium滑动式验证码解决办法

    一: ps:这种方法可能会被反爬虫机制识别导致进入失败 二:

  • 反反爬虫之js加密参数获取

    反爬虫与反反爬虫从爬虫诞生开始就已经存在,反爬策略层出不穷,反反爬也都应对有招。 就我目前碰到的反爬,从简单的us...

  • 爬虫12-使用IP代理防止被反爬

    大家好,昨天我们讨论了一下爬虫与反爬虫之间的对抗,不可谓不激烈,今天我们主要来讨论应对反爬虫中非常重要的一种手段,...

  • 反爬虫机制

    1.headers 头部中 Referer 字段,user-agent,cookie 新浪的另一个反爬虫机制 访客...

  • Python构建代理池

    用 Python 爬取网站内容的时候,容易受到反爬虫机制的限制,而突破反爬虫机制的一个重要措施就是使用IP代理。我...

  • 普通反爬虫机制的应对策略

    转载自:http://mp.weixin.qq.com/s/eJF4PO1bl-j1EAW7TIGEfQ, 有删节...

网友评论

    本文标题:反爬虫机制与应对方法

    本文链接:https://www.haomeiwen.com/subject/qsqwsctx.html