🥳加入Scrapeless 社区申请免费试用以访问我们强大的网页抓取工具包!
返回博客

使用 Scrapy 绕过 Cloudflare:2024 年最新教程

Michael Lee
Michael Lee

Expert Network Defense Engineer

09-Sep-2024

Cloudflare 是一个流行的在线性能和安全工具。其复杂的反机器人系统采用尖端技术识别和阻止人工流量,导致出现“访问被拒绝”错误消息。

本文将教你如何使用 Python 和 Scrapy Cloudflare 中间件绕过 Cloudflare。

Scrapy-Cloudflare 中间件是什么?

一个名为 Scrapy Cloudflare 中间件的程序与 Scrapy 网络抓取工具协同工作,替你处理 Cloudflare 问题。它充当你的 Scrapy 蜘蛛和目标服务器之间的中间人,以便在抓取过程的不同阶段拦截和修改请求和回复。

在你的 Scrapy 项目中使用中间件将提高你躲避检测和封锁的可能性。

Scrapy-Cloudflare 如何运作?

Scrapy 在开始爬取时,会为预定的 URL 创建查询。Scrapy Cloudflare 可以通过中间件管道来更改这些请求,以模仿人类行为。

该工具的主要目的是绕过 Cloudflare 的“我正在受到攻击模式”页面。Scrapy Cloudflare 中间件会解析 JavaScript 挑战,它会在接收到请求时拦截来自 Cloudflare 挑战服务器的响应。

如何使用 Scrapy-Cloudflare 中间件绕过 Cloudflare?

本文将向你展示如何使用 Python 和 Scrapy 绕过 Cloudflare。在提交请求之前,你必须将中间件添加到 DOWNLOADER_MIDDLEWARES 设置中。

1. 准备 scrapy

确保安装了 Python,因为 Scrapy 是一个开源框架,需要 Python 3.6 或更高版本。接下来,在你的终端中使用以下命令安装 Scrapy:

language Copy
pip install scrapy

接下来,执行以下命令以启动一个新的 Scrapy 项目。用 test_project 替换你的项目名称。

language Copy
scrapy startproject test_project

打开新创建的项目目录并启动第一个爬虫。

language Copy
cd test_project
scrapy genspider (SpiderName) (TargetURL)

厌倦了不断被CAPTCHA阻碍你的网页抓取工作?

向您强烈推荐 Scrapeless - 性能强大的一体化网页抓取解决方案。

Scrapeless:目前最好的一体化在线抓取解决方案!

借助我们强大的工具套件,可以轻松发挥数据抓取的全部潜力:

最佳 CAPTCHA 解码器

自动解决复杂的 CAPTCHA 问题,确保持续而丝滑地抓取网页数据。

免费试用开启中!

2. 设置并整合 Scrapy Cloudflare 中间件

安装 Scrapy Cloudflare 中间件需要导航到根目录并执行以下命令:

language Copy
pip install scrapy_cloudflare_middleware

然后,打开 settings.py 文件并包含 Scrapy Cloudflare 中间件。您的 settings.py 文件应该类似于以下内容:

language Copy
BOT_NAME = "test_project"

SPIDER_MODULES = ["test_project.spiders"]
NEWSPIDER_MODULE = "test_project.spiders"

DOWNLOADER_MIDDLEWARES = {
    "test_project.middlewares.TestProjectDownloaderMiddleware": 543,
    "scrapy_cloudflare_middleware.middlewares.CloudFlareMiddleware": 560,
}

结论

Python Scrapy Cloudflare 中间件依赖于规避基本的 JavaScript Cloudflare 问题。但安全系统一直在更新其防御措施,因此 Scrapy Cloudflare 中间件不再起作用。

值得庆幸的是,有一个名为 Scrapeless 的 Scrapy 替代方案,它提供了一种行之有效的解决方案来保持不被封锁。立即加入以获取免费试用吧!

在Scrapeless,我们仅访问公开数据,同时严格遵守适用的法律、法规和网站隐私政策。 本博客内容仅用于演示目的,不涉及任何非法或侵权行为。 对于使用本博客或第三方链接的信息,我们不做任何保证,也不承担任何责任。 在参与任何抓取活动之前,请咨询您的法律顾问并查看目标网站的服务条款或获取必要的权限。

最受欢迎的文章

目录