希望专家能帮助我解开 Selenium/Cloudflare 之谜。我可以让一个网站在普通(非无头)Selenium 中加载,但无论我尝试什么,我都无法让它在无头中加载。
我已遵循 StackOverflow 帖子中的建议,例如Is there a version of Selenium WebDriver that is not detectorable? 。window我还查看了和对象的所有属性window.navigator,并修复了无头和非无头之间的所有差异,但不知何故仍然检测到无头。此时我非常好奇 Cloudflare 如何能够找出其中的差异。谢谢你的时间!
我尝试过的事情列表:
cdc_为 chromedriver 中的另一个字符串options.add_experimental_option("excludeSwitches", ["enable-automation"])options.add_experimental_option('useAutomationExtension', False)options.add_argument('--disable-blink-features=AutomationControlled')(这是让网站以非无头方式加载所必需的)navigator.webdriver = undefinednavigator.plugins、navigator.languages、 和navigator.mimeTypeswindow.ScreenY, window.screenTop, window.outerWidth,设置window.outerHeight为非零window.chrome和window.navigator.chromeModernizr重复实验
为了让网站在正常(非无头)Selenium 中加载,您必须点击_blank另一个网站的链接(以便目标网站在另一个选项卡中打开)。要复制该实验,首先创建一个包含内容的 html 文件<a href="https://poocoin.app" target="_blank">link</a>,然后在以下代码中粘贴该 html 文件的路径。
下面的版本(非无头)运行良好并加载网站,但如果您设置 …
我制作了一个不和谐的机器人,它使用 selenium 访问网站并获取信息,当我在本地运行代码时,我没有任何问题,但是当我部署到 Heroku 时,我得到的第一个 URL 将我重定向到 page Attention Required! | Cloudflare。
我努力了:
还有许多其他具有我使用的相同设置的:
options = Options()
options.binary_location = os.environ.get("GOOGLE_CHROME_BIN")
options.add_experimental_option("excludeSwitches", ["enable-logging", "enable-automation"])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument("--headless")
options.add_argument("--disable-dev-shm-usage")
options.add_argument("--no-sandbox")
self.driver = webdriver.Chrome(executable_path=os.environ.get("CHROMEDRIVER_PATH"), options=options)
self.driver.execute_cdp_cmd('Network.setUserAgentOverride', {
"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.53 Safari/537.36'})
Run Code Online (Sandbox Code Playgroud)
但这不起作用,代码仅在本地运行
PS:本地我在Windows上
我重定向到的页面来源:
https://gist.github.com/rafalou38/9ae95bd66e86d2171fc8a45cebd9720c

我很好奇Recaptcha v3的工作方式。特别是浏览器指纹。
当我通过selenium / chromedriver启动chrome实例并针对ReCaptcha 3(https://recaptcha-demo.appspot.com/recaptcha-v3-request-scores.php)进行测试时,使用selenium /时我总是得到0.1分chromedriver。
在正常实例中使用隐身模式时,我得到0.3。
我通过注入JS并修改Web驱动程序对象并从源代码重新编译WebDriver并修改$ cdc_变量来击败其他检测系统。
我可以看到看起来有些混乱的POST返回到服务器,所以我将开始在那里进行挖掘。
我只是想检查是否有人愿意首先与它分享任何建议或经验,以决定我是否正在运行Selenium / chromedriver?
selenium recaptcha web-scraping selenium-chromedriver recaptcha-v3
我正在尝试使用带有 selenium 的无头 chrome 浏览器,它也绕过了机器人检测测试,目前使用以下项目https://github.com/ultrafunkamsterdam/unDetected-chromedriver 每次我尝试实现代码时,它都不会不认识司机。 这是您可以理解的链接
这是代码
#
# UNDETECTED chromedriver (headless,even)
#
import undetected_chromedriver as uc
options = uc.ChromeOptions()
options.headless=True
options.add_argument('--headless')
chrome = uc.Chrome(options=options)
chrome.get('https://datadome.co/customers-stories/toppreise-ends-web-scraping-and-content-theft-with-datadome/')
chrome.save_screenshot('datadome_undetected_webddriver.png')
Run Code Online (Sandbox Code Playgroud)
因此,当我使用时chrome.get(),我收到一个错误,因为 chrome 没有get()成员。我也使用 pip 命令安装了该项目。所以我在想我是否需要将路径指向 chromedriver,那会在哪里,因为我怀疑它将是普通驱动程序,并且文档从未提到驱动程序的路径。
好的,当我运行程序时,我在终端中得到以下内容
DevTools listening on ws://127.0.0.1:55903/devtools/browser/ef3a54cf-35b9-400f-972c-2b54ca227eb8
[0102/000855.199:INFO:CONSOLE(2)] "JQMIGRATE: Migrate is installed, version 1.4.1", source: https://datadome.co/wp-content/cache/busting/1/wp-includes/js/jquery/jquery-migrate.min-1.4.1.js (2)
[0102/000856.946:INFO:CONSOLE(1)] "Messaging child iframes", source: https://track.gaconnector.com/gaconnector.js (1)
[0102/000856.946:INFO:CONSOLE(1)] "https://track.gaconnector.com/track_pageview?gaconnector_id=ddade4fc-93d0-20a3-79fa-39648d8e6629&account_id=6dd3433635353fd00f486550bcd5b157&referer=&GA_Client_ID=183291439.1609510136&page_url=https%3A%2F%2Fdatadome.co%2Fcustomers-stories%2Ftoppreise-ends-web-scraping-and-content-theft-with-datadome%2F&gclid=&utm_campaign=&utm_term=&utm_content=&utm_source=&utm_medium=", source: https://track.gaconnector.com/gaconnector.js (1)
PS D:\Programming\Python> [0102/000902.158:INFO:CONSOLE(0)] "The resource https://js.driftt.com/core/assets/js/runtime~main.a73a2727.js was preloaded using link preload but not used …Run Code Online (Sandbox Code Playgroud) python selenium webdriver selenium-chromedriver selenium-webdriver
selenium ×4
python ×3
webdriver ×2
bots ×1
captcha ×1
cloudflare ×1
heroku ×1
recaptcha ×1
recaptcha-v3 ×1
web-scraping ×1