代码改变世界

绕过 Cloudflare 的反机器人页面的 Python 模块。

2022-09-06 16:09  狼人:-)  阅读(1999)  评论(0编辑  收藏  举报

一个简单的 Python 模块,用于绕过 Cloudflare 的反机器人页面(也称为“我处于攻击模式”或 IUAM),使用Requests实现。Cloudflare 会定期更改他们的技术,所以我会经常更新这个 repo。

如果您希望抓取或抓取受 Cloudflare 保护的网站,这将非常有用。Cloudflare 的反机器人页面目前只检查客户端是否支持 Javascript,但他们将来可能会添加其他技术。

由于 Cloudflare 不断更改和强化其保护页面,cloudcraper 需要 JavaScript 引擎/解释器来解决 Javascript 挑战。这允许脚本轻松模拟常规 Web 浏览器,而无需显式反混淆和解析 Cloudflare 的 Javascript。

作为参考,这是 Cloudflare 用于这些页面的默认消息:

Checking your browser before accessing website.com.

This process is automatic. Your browser will redirect to your requested content shortly.

Please allow up to 5 seconds...

任何使用 cloudcraper 的脚本在第一次访问任何启用了 Cloudflare 反机器人的站点时都会休眠约 5 秒,但在第一次请求之后不会出现延迟。

from bs4 import BeautifulSoup
import cloudscraper

scraper = cloudscraper.create_scraper(delay=10,   browser={'custom': 'ScraperBot/1.0',})
url = 'https://pixabay.com/images/search/study/?orientation=horizontal&'
req = scraper.get(url)
print(req.text)
sys.exit()