返回介绍

6.1 常用的网站反爬虫策略及应对措施

发布于 2025-04-21 19:15:27 字数 1757 浏览 0 评论 0 收藏

前面已经多次提到反爬虫这个概念,这一节介绍常用的网站反爬虫策略,以便有针对性地采取一些措施,防止爬虫被网站服务器识别和禁止。

6.1.1 常用的网站反爬虫策略

常用的网站反爬虫策略有以下几种。

1. 通过 Headers 反爬虫

通过识别用户请求的 Headers 反爬虫是最常用的网站服务器反爬虫策略。很多网站都会对 HTTP 请求头部的 User Agent 进行检测,还有一部分网站会对 Referer 进行检测(一些资源网站的防盗链就是检测 Referer)。

2. 基于用户行为反爬虫

一种常用的反爬虫策略是通过检测用户行为来判断请求是否来自爬虫。例如同一 IP 地址短时间内多次访问,或者同一账户短时间内多次进行相同操作,都有可能使网站采取反爬虫措施。

3. 采用动态页面反爬虫

有一部分网站的页面与静态页面不同,需要爬取的数据是通过 JavaScript 生成的,也就是通过 AJAX 请求得到数据,这样就会对爬虫的爬取造成一些困难。

以上就是网站常用的反爬虫策略,另外,还有少数网站会使用 Cookies 反爬虫。登录或者下载时需要填写验证码这种措施,也可以被归类为反爬虫的一种策略。

6.1.2 应对网站反爬虫的措施

针对上面分析的几种常用的服务器反爬虫策略,可以考虑以下应对措施。

1. 为爬虫设置 Headers

如果遇到通过监测 Headers 反爬虫的服务器,可以直接在请求中添加 User Agent 等头部信息。前面的代码曾经使用过这种方法,就是将浏览器的 User Agent 复制到爬虫的 Headers 中,或者将 Referer 值修改为目标网站域名等。对于检测 Headers 的反爬虫,在爬虫中修改或者添加 Headers 就能很好地绕过,这是最常用的应对反爬虫措施。一般来说,在爬取网站时都需要添加 Headers,模拟成真实的浏览器。

2. 使用 IP 代理或加大请求间隔时间

针对网站监测 IP 访问的情况,可以使用 IP 代理或加大请求间隔时间解决。可以使用代理 IP 来发起请求,每请求几次更换一个 IP,这样就能很容易地绕过检测用户浏览行为的反爬虫策略。下一节将为读者具体演示如何在 Requests 中使用代理 IP。

在需要登录才能爬取的时候,针对检测同一账户浏览行为等反爬虫方式,可以在每次请求后随机间隔几秒再进行下一次请求。有些有逻辑漏洞的网站,可以通过请求几次→退出登录→重新登录→继续请求的方法,绕过同一账号短时间内不能多次进行相同请求的限制。

3. 使用 Selenium 框架

对于动态页面,可以首先用浏览器对网络请求进行分析。如果能够找到 AJAX 请求,分析出具体参数和响应的具体含义,就可以直接利用 Requests 模拟 AJAX 请求,对返回的响应进行分析,得到需要的数据。

有时候有些网站会把 AJAX 请求的参数全部加密,用户根本没办法构造自己所需要的请求。这时可以使用 Selenium 框架调用 Chrome 浏览器或者 PhantomJS 浏览器,利用浏览器执行 JS 来模拟人的操作和触发页面中的 JS 脚本。第 7 章将详细讲解使用 Selenium 框架做网站爬虫的方法。

以上就是常用的网站反爬虫策略及其应对措施,当爬虫遭遇网站反爬虫禁止的时候,应该仔细分析它的反爬虫策略,从而采取针对性的措施。还有一点值得读者参考:一般网站的移动页面反爬虫措施较少,并且页面结构简单,特别适合爬取,对于有移动页面的网站,可以优先考虑爬取其移动页面。

爬虫实战-应对反爬虫的策略及本节作业

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。