无法使用 Python Seleniumbase 绕过 Cloudflare 保护

问题描述 投票:0回答:1

我正在开发一个软件,它可以访问网站,单击一些按钮,关闭浏览器,然后循环执行一遍。但问题是:我正在尝试为受 CloudFlare 保护的网站执行此操作。在不使用任何代理的情况下,它可以绕过大部分时间,但当我使用代理时,它不能绕过 99%。

while True:
    # renew_tor_ip()
    # for x in goodProxy:
    if driversN < driverLimit:
        driversN += 1
        randomList = proxyList[randint(0, len(proxyList)-1)]
        print(randomList)
        if opt == 'y':
            cmd = f'pytest w.py --gui --uc --proxy={randomList} --no-summary -q --multi-proxy --disable-ws'
        elif opt == 'n':
            cmd = f'pytest w.py --gui --uc --no-summary -q --disable-ws'
        Thread(target=access_site, args=(cmd, )).start()
    if driversN >= driverLimit:
        print(f'sleeping', end='\r')
        time.sleep(0.5)

我认为我需要对这部分代码进行一些更改才能解决问题。

网站是 dexscreener.com。我试图找到它的直接 IP 地址,这样我就可以在没有 CloudFlare 的情况下连接网站,但似乎他们之前就想到了,所以我在任何地方都找不到它。我正在使用 Seleniumbase 的未检测到的 chromedriver 模式,但当我使用代理时它没有帮助。

python pytest cloudflare webautomation seleniumbase
1个回答
0
投票

让我们从一个使用 SeleniumBase UC 模式绕过受 Cloudflare 保护的站点的基本示例开始:(如果第一次被阻止,则包括重试。)

from seleniumbase import SB

with SB(uc=True) as sb:
    url = "https://gitlab.com/users/sign_in"
    sb.driver.uc_open_with_reconnect(url, 4)
    if not sb.is_text_visible("Username", '[for="user_login"]'):
        sb.driver.uc_open_with_reconnect(url, 6)

SB()
可以采用以下格式的
proxy
参数:

  • server:port
  • username:password@server:port

假设代理地址尚未被识别为机器人流量源,则将

proxy
设置为
SB()
应该可以。

© www.soinside.com 2019 - 2024. All rights reserved.