cloudcraper.exceptions.CloudflareChallengeError:检测到 Cloudflare 版本 2 挑战。当我将 cloudcraper 模块与 python 一起
Posted
技术标签:
【中文标题】cloudcraper.exceptions.CloudflareChallengeError:检测到 Cloudflare 版本 2 挑战。当我将 cloudcraper 模块与 python 一起使用时出错【英文标题】:cloudscraper.exceptions.CloudflareChallengeError: Detected a Cloudflare version 2 challenge. Error when I used cloudscraper module with python 【发布时间】:2021-04-20 07:40:06 【问题描述】:所以我试图绕过网站的 cloudflare 保护以从其中抓取一些项目,但 Cloudscraper python 模块不起作用。
每当我运行它时,我都会收到此错误:
cloudscraper.exceptions.CloudflareChallengeError: Detected a Cloudflare version 2 challenge, This feature is not available in the opensource (free) version.
这是我正在使用的简化代码:
import cloudscraper
from bs4 import BeautifulSoup as soup
url = "http://adventurequest.life/"
scraper = cloudscraper.create_scraper()
html = scraper.get(url).text
page_soup = soup(html, "html.parser")
print(page_soup)
你们知道如何解决这个问题吗?
【问题讨论】:
修复已在错误消息中。请仔细阅读。 是的,它说不是在开源中,但是,呃。没有付费版本。 我解决此问题的唯一方法是向网站所有者询问来自 cloudflare 的用户代理令牌。我在我们的社区网站上运行了一个爬虫,所以我明白了。不知道别人。显然,仍然没有绕过这个。 @shawnngtq 不幸的是,我还没有找到解决方案。你有最新的cloudscraper 版本吗?作者显然在我上次发表评论后的第二天进行了更新。我还没有测试问题是否仍然存在。 1.2.58版本同样的错误 【参考方案1】:我在使用scrapy+cloudscraper的时候也遇到了同样的错误,但是后来我设置了cookie_enable=true就好了:
错误
Traceback (most recent call last):
cloudscraper.exceptions.CloudflareChallengeError: Detected a Cloudflare version 2 Captcha challenge, This feature is not available in the opensource (free) version.
2021-04-27 09:59:30 [scrapy.core.scraper] ERROR: Error downloading <GET https://www.forever21.com/us/shop/catalog/category/f21/lingerie>
Traceback (most recent call last):
StopIteration: <403
https://www.forever21.com/us/shop/catalog/category/f21/lingerie>
之前:
import cloudscraper
browser = cloudscraper.create_scraper()
# in middleware
req = spider.browser.get(url,
proxies='http': proxy,
'https': https_proxy
headers='referer': url,
)
之后:
'COOKIES_ENABLED': True
但是在bs4中默认添加了cookie,所以我试了下你的代码,发现是正常的。
url = "http://adventurequest.life/"
scraper = cloudscraper.create_scraper()
html = scraper.get(url).text
page_soup = soup(html, "html.parser")
print(page_soup)
<!DOCTYPE doctype html>
<html lang="en" style="min-height: 100%;">
<head>
<!-- Required meta tags -->
<meta charset="utf-8"/>
<meta content="width=device-width, initial-scale=1, shrink-to-fit=no" name="viewport"/>
<meta content="Auto Quest Worlds" name="twitter:title"/>
<meta content="aqw bots, adventure quest bots, aqw cheat, aqw hack, aqw exploits, grimoire download, adventure quest worlds bot, leveling bot aqw, botting mmorpg, aqw private server, aqworlds private server, aqw server, aqw ps, aqw private, skidson, aqw pirata, servidor de aqw, adventure quest worlds private, dragonfable private server, adventure quest private server, free to play mmorpg, free online games, browser games, jogos online, jogos criancas, jogos de navegador, best aqw private server, best online mmorpg, best browser mmorpg, habbo servidor privado, habbo retro, habbo private server, runescape private server, high rates aqw, aqw items, aqworlds wiki" name="keywords"/>
<meta content="https://adventurequest.life/" name="twitter:url"/>
也许你应该检查你的机器 opennssl 版本然后更新或升级 cloudcraper 版本。
我的cloudscraper版本是:cloudscraper ========> 1.2.58
【讨论】:
你在哪里设置了COOKIES_ENABLED
?在什么文件/函数中?
可以在爬虫的自定义设置中设置,也可以在设置文件中设置。以上是关于cloudcraper.exceptions.CloudflareChallengeError:检测到 Cloudflare 版本 2 挑战。当我将 cloudcraper 模块与 python 一起的主要内容,如果未能解决你的问题,请参考以下文章