俄罗斯贵宾会-俄罗斯贵宾会官网
做最好的网站

爬虫与反爬

目前遇到的反爬主要有以下几种

搜寻了大多数资料,反爬虫策略只是为了让爬虫更复杂,更麻烦,目前貌似没有能一劳永逸的方案。

  1. 访问频率
  2. 登录限制
  3. 通过Head封杀
  4. JavaScript脚本动态获取网站数据
  5. 验证码
  6. IP限制
  7. 网站内容反爬

以下的策略只是增加爬虫的难度,增加爬虫成本。

1.访问频率

如果访问一个网站过于频繁,网站后台管理可能会针对IP封锁一段时间。那么解决的方法就是有间隔的进行控制时间爬取,比如搞个随机数进行sleep,sleep不同的间隔,那么网站就识别不出是爬虫了,千万不要间隔一样的时间,有规律的时间间隔访问很容易就被网站识别出是人为的啦,可以借用scrapy框架中的setting文件中的智能算法,采用没有规律的时间间隔访问。

1.Headers限制

图片 1

检查User-Agent属性,判断是否为浏览器访问。

检查Referer属性,判断来源。

2.登录限制

有些网站需要登录才能看到页面,如果进行爬虫的话,可以通过模拟登录就像浏览器一样,然后通过cookie记住登录状态,每次进行访问都携带者所需要的cookie过去,所以这种反爬机制也很容易解决。

以下是网上收集的获取不到HTTP_REFERER值的情况:

① 在浏览器内直接敲URL

② windows桌面上的超链接图标

③浏览器内书签

④第三方软件(如Word,Excel等)内容中的链接

⑤SSL认证网站跳入

http://example.com/“> meta页面设置自动跳转时,在example.com将取不到REFERER URL

⑦使用JavaScript的Location.href或者是Location.replace()

这应该是最常见的,最基本的反爬虫手段,主要是初步判断你是否是真实的浏览器在操作。

3.通过Head封杀

我们进行网页爬取的时候,会通过HTTP请求,HTTP请求包含请求头和请求体,有些网站会根据请求头部Head信息进行反爬虫封杀IP,比如可以通过请求头部的User-Agent来判断是否为爬虫还是浏览器。每个网站有一个robots.txt,一般都在服务器的根目录下,比如下面百度的,这个文件的作用是允许不同爬虫可以爬取不同目录下的文件的权限。

图片 2

当然我们爬虫不会傻傻的告诉网站我们是爬虫,一般都会通过修改User-Agent字段的值来伪造成浏览器。所以这种反爬机制也容易对付。

2.IP限制

限制IP也是很多网站反爬虫的初衷,有些人随便写一个循环,就开始暴力爬取 ,确实会给网站服务器带来很大的负担,而这种频繁的访问,显然也不会是真实用户行为,索性果断把你封掉。

当然,攻击者可以通过不断换IP的形式来绕过这种限制。而且封IP会流失用户,一般情况下不会采取。

本文由俄罗斯贵宾会发布于编程,转载请注明出处:爬虫与反爬

您可能还会对下面的文章感兴趣: