Ska*_*kat 5 python selenium selenium-chromedriver
我有一个问题,https://bet365.com开始阻止 Selenium 机器人。它卡在白屏上。
我已经尝试了一切,现在我的代码看起来像:
username = os.getenv("USERNAME")
userProfile = "C:\\Users\\" + username + "\\AppData\\Local\\Google\\Chrome\\User Data\\Default"
opts = webdriver.ChromeOptions()
opts.add_argument("user-data-dir={}".format(userProfile))
opts.add_argument('--profile-directory=Profile 2')
opts.add_argument("user-agent='Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'")
opts.add_experimental_option('useAutomationExtension', False)
opts.add_experimental_option("excludeSwitches", ["enable-automation", "ignore-certificate-errors", "safebrowsing-disable-download-protection", "safebrowsing-disable-auto-update", "disable-client-side-phishing-detection"])
opts.add_argument("--disable-notifications")
opts.add_argument("--disable-blink-features")
opts.add_argument("--disable-blink-features=AutomationControlled")
opts.add_experimental_option("excludeSwitches", ["enable-automation"])
opts.add_experimental_option('useAutomationExtension', False)
self.browser = webdriver.Chrome(options=opts, executable_path=self.resource_path("chromedriver.exe"))
window_size = self.browser.execute_script("""
return [window.outerWidth - window.innerWidth + arguments[0],
window.outerHeight - window.innerHeight + arguments[1]];
""", width, height)
self.browser.set_window_size(*window_size)
self.browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'webdriver', {
get: () => undefined
})
"""
})
self.browser.execute_cdp_cmd("Page.addScriptToEvaluateOnNewDocument", {
"source": """
Object.defineProperty(navigator, 'languages', {
get: () => ["en-US", "en", "es"]
})
"""
})
self.browser.execute_cdp_cmd("Network.enable", {})
self.browser.execute_cdp_cmd("Network.setExtraHTTPHeaders", {"headers": {"User-Agent": "browser1"}})
self.browser.execute_cdp_cmd('Network.setUserAgentOverride',
{"userAgent": 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/87.0.4280.66 Safari/537.36'})
Run Code Online (Sandbox Code Playgroud)
我还尝试使用 geckodriver 在 Firefox 上启动机器人,并尝试使用 phantomjs 启动它,但它也没有结果。最后,我试图通过将 $cdc_ 更改为 smth else ($aba_) 来混淆 chromedriver.exe 中的 JavaScript 代码,bot 启动,一切正常,但同样无法访问 Bet365。
启动程序浏览器后卡在这个:Bet365 Screenshot
当我自己手动访问该网站时,一切正常,它会加载。
谁能帮我解决这个问题?