x1339250937 2023-04-27 20:54 采纳率: 0%
浏览 23

selenium 绕过cloudflare?

如何利用selenium绕过cloudflare?
以下是我用python写的selenium代码

from selenium.webdriver.chrome.options import Options
from selenium import webdriver
import time
from selenium.webdriver.common.by import By

options = Options()
# options.add_argument("--headless")
options.add_argument("--disable-gpu")
options.add_argument('--no-sandbox')  # 不启动沙盒,Bypass OS security model
options.add_argument('--disable-dev-shm-usage')  # overcome limited resource problems
options.add_argument('--hide-scrollbars')  # 隐藏滚动条, 应对一些特殊页面
options.page_load_strategy = 'eager'
options.add_experimental_option("excludeSwitches", ["enable-automation"])  # 反检测
options.add_experimental_option('useAutomationExtension', False)
options.add_argument("--disable-blink-features=AutomationControlled")  # 防检测
options.add_experimental_option("detach", True)  # 代码结束后不自动关闭浏览器
options.add_argument(
        '--user-Agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.132 Safari/537.36"')  # chromedriver添加头的做法
options.add_argument(
    "--Cookie=cookie_username=15971273124; JSESSIONID=AAA685F7FDEE475D3C9312E322DB4A53-n2; Hm_lvt_bed4e06c9c336e6fec0b7611aeefdc73=1681458156,1682507710; token=995kvhqTAUFQWUKpfvA4cA%3D%3D; utoken=mk%2BIhvPmGfu400Tc0VW1p6lud7SXDcnU; webSessionId=AAA685F7FDEE475D3C9312E322DB4A53-n2; Hm_lpvt_bed4e06c9c336e6fec0b7611aeefdc73=1682518020"
)

web = webdriver.Chrome(options=options)
with open('stealth.min.js', 'r') as f:
    web.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
        "source": f.read()
    })

# 调用函数在页面加载前执行脚本
# options.add_argument('Cookie: "JSESSIONID=9CB7AA31A493C6B86D4A6631563F9421-n3; Hm_lvt_bed4e06c9c336e6fec0b7611aeefdc73=1681825648,1682036308,1682169651,1682347762; token=995kvhqTAUFQWUKpfvA4cA%3D%3D; utoken=mk%2BIhvPmGfu400Tc0VW1p6lud7SXDcnU; webSessionId=9CB7AA31A493C6B86D4A6631563F9421-n3; cookie_username=15971273124; Hm_lpvt_bed4e06c9c336e6fec0b7611aeefdc73=1682354460"')
# script = 'Object.defineProperty(navigator,"webdriver",{get:() => false,});'
# web.execute_cdp_cmd( "Page.addScriptToEvaluateOnNewDocument", {"source": """
# Object.defineProperty(navigator, 'webdriver', {get: () => [1, 2, 3] })"""},)
# web.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{"source": """
# Object.defineProperty(navigator, 'languages', {get: () => ['en-US', 'en']})"""},)
web.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument",{"source": """
Object.defineProperty(Notification, 'permission', { get: () => False});
"""},)


web.get("https://www.2bulu.com/track/t-%252FiQHDOTh2lDp%252FR2KBg5Tzw%253D%253D.htm#")
# 修改window.navigator.webdriver属性的值为undefined
# web.execute_script("Object.defineProperties(navigator,{webdriver:{get:()=>undefined}})")
load = web.find_element(By.CLASS_NAME,"btn_orange").click()
load1 = web.find_element(By.XPATH,'//*[@id="base_area"]/div[9]/ul/li[2]').click()
load2 = web.find_element(By.CLASS_NAME,'p2').click()
time.sleep(5)
check = web.find_element(By.XPATH,'//*[@id="challenge-stage"]/div/label/input').click()

我想要绕过的验证:

img

  • 写回答

1条回答 默认 最新

  • 以山河作礼。 新星计划导师 2023-04-27 21:17
    关注

    Selenium无法绕过Cloudflare,可以使用代理IP,避免被Cloudflare检测到

    评论

报告相同问题?

问题事件

  • 创建了问题 4月27日

悬赏问题

  • ¥15 为什么在iis上部署网站,服务器可以访问,但是本地电脑访问不了
  • ¥15 三极管电路求解,已知电阻电压和三级关放大倍数
  • ¥15 ADS时域 连续相位观察方法
  • ¥15 Opencv配置出错
  • ¥15 关于模型导入UNITY的.FBX: Check external application preferences.警告。
  • ¥15 气象网格数据与卫星轨道数据如何匹配
  • ¥100 java ee ssm项目 悬赏,感兴趣直接联系我
  • ¥15 微软账户问题不小心注销了好像
  • ¥15 x264库中预测模式字IPM、运动向量差MVD、量化后的DCT系数的位置
  • ¥15 curl 命令调用正常,程序调用报 java.net.ConnectException: connection refused