当前位置: 首页 > 知识库问答 >
问题:

如何绕过cloudflare浏览器检查selenium Python

葛永丰
2023-03-14

我正在尝试使用selenium Python访问一个站点。但是该站点正在通过cloud dflare不断检查和检查。没有其他页面来了。

检查这里的截图。

我尝试了未被发现的chrome,但它根本不起作用。

共有1个答案

暨弘懿
2023-03-14

未检测到的铬是指未检测到的铬驱动程序吗?:

不管怎样,未被发现的chromedriver对我来说很有用:

Github:https://github.com/ultrafunkamsterdam/undetected-chromedriver

pip install undetected-chromedriver
import undetected_chromedriver as uc
driver = uc.Chrome(use_subprocess=True)
driver.get('https://nowsecure.nl')

Github:https://github.com/xtekky/google-login-bypass

import undetected_chromedriver as uc
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

#  ---------- EDIT ----------
email = 'email\n' # replace email
password = 'password\n' # replace password
#  ---------- EDIT ----------

driver = uc.Chrome(use_subprocess=True)
wait = WebDriverWait(driver, 20)
url = 'https://accounts.google.com/ServiceLogin?service=accountsettings&continue=https://myaccount.google.com%3Futm_source%3Daccount-marketing-page%26utm_medium%3Dgo-to-account-button'
driver.get(url)


wait.until(EC.visibility_of_element_located((By.NAME, 'identifier'))).send_keys(email)
wait.until(EC.visibility_of_element_located((By.NAME, 'password'))).send_keys(password)
print("You're in!! enjoy")

# [ ---------- paste your code here ---------- ]
 类似资料:
  • 希望专家能帮我解答硒/云闪之谜。我可以让一个网站在正常(非无头)硒加载,但无论我尝试什么,我不能让它加载在无头。 我遵循了StackOverflow帖子的建议,比如是否有无法检测到的SeleniumWebDriver版本?。我还研究了和对象并修复了无头和无头之间的所有差异,但不知何故,仍在检测无头。在这一点上,我非常好奇Cloudflare如何能够找出差异。谢谢你抽出时间! 我尝试过的事情列表:

  • 像调用一个百度搜索API,发现没有官方版本,只有一个网页版本http://www.baidu.com/s?wd=梅西&cl=3。使用postman可以正常调用,但用在nodejs或无头浏览器(puppteer)中,会被百度识别非浏览器,从而无法返回正确内容。 请问有什么方法能绕过吗?或者有无其他替换API?

  • 我们都知道,有时候cloudflare喜欢检查他们的客户访问者,以确保访问者不是真正的人。安全检查要求我们通过谷歌recaptcha。我想问的是,是否有可能通过使用我们自己的服务器(即使与远程服务器和回答验证码由我们自己等),以及如何?

  • 我需要从一个网站获取一些信息只是为了教育的目的,但我不能发送请求,因为保护。我首先会看到典型的Checking-your-browser页面,然后我会被反复重定向。我如何在python Selenium中绕过这个保护?

  • 我有一个Chrome扩展,我目前正在写一个网站来宣传它。我知道一个Chrome扩展可以安装在所有基于Chromium的浏览器(Chrome、Opera等)中。 是否可以检查浏览器是否可以从网络商店下载扩展,或者是否基于chromium? 我在这里找到了检测是否是谷歌Chrome的代码。如果我错了,请纠正我,但是我认为不会在所有基于Chromium的浏览器中返回。

  • 如何检查网页是否已被手机浏览器或电脑浏览器打开。我试过这个: 但它给出了这些类型的结果: 对于Fedora Firefox浏览器:Mozilla/5.0(X11;Linux i686;rv:13.0)Gecko/20100101 Firefox/13.0 从以上两个结果中,我无法区分网页是被手机还是电脑访问的。我该怎么做? 如果我能在Java做到这一点,那就太好了。