Selenium - 尝试加载网站时出现错误页面?
Selenium - Getting error page when trying to load site?
我尝试加载这个网站
https://www.pferdewetten.de/
使用以下代码:
import time
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from sys import platform
import os, sys
import xlwings as xw
from selenium.webdriver.support.ui import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager
from fake_useragent import UserAgent
if __name__ == '__main__':
SAVE_INTERVAL = 5
WAIT = 3
print(f"Checking chromedriver...")
os.environ['WDM_LOG_LEVEL'] = '0'
ua = UserAgent()
userAgent = ua.random
options = Options()
# options.add_argument('--headless')
options.add_experimental_option ('excludeSwitches', ['enable-logging'])
options.add_experimental_option("prefs", {"profile.default_content_setting_values.notifications": 1})
options.add_argument("--disable-infobars")
options.add_argument("--disable-extensions")
options.add_argument("start-maximized")
options.add_argument('window-size=1920x1080')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
options.add_argument(f'user-agent={userAgent}')
srv=Service(ChromeDriverManager().install())
driver = webdriver.Chrome (service=srv, options=options)
waitWebDriver = WebDriverWait (driver, 10)
link = f"https://www.pferdewetten.de/"
driver.get (link)
但我总是只得到这些信息:
有什么方法可以使用 selenium 加载此网站吗?
可能 elenium 驱动 ChromeDriver 启动 google-chrome Browsing Context is as a bot.
要逃避检测,您可以进行如下一些调整:
- 去掉
--no-sandbox
参数,执行为non-root 用户。
- 删除
--disable-infobars
参数,因为它不再有效。
- 删除
--disable-extensions
参数,因为它不再有效。
- 添加一个实验性选项
"excludeSwitches", ["enable-automation"]
来逃避检测。
- 添加一个实验性选项
'useAutomationExtension', False
来逃避检测。
- 添加参数
'--disable-blink-features=AutomationControlled'
以逃避检测。
实际上您的代码块将是:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get("https://www.pferdewetten.de/")
driver.quit()
我尝试加载这个网站 https://www.pferdewetten.de/ 使用以下代码:
import time
from bs4 import BeautifulSoup
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from sys import platform
import os, sys
import xlwings as xw
from selenium.webdriver.support.ui import WebDriverWait
from webdriver_manager.chrome import ChromeDriverManager
from fake_useragent import UserAgent
if __name__ == '__main__':
SAVE_INTERVAL = 5
WAIT = 3
print(f"Checking chromedriver...")
os.environ['WDM_LOG_LEVEL'] = '0'
ua = UserAgent()
userAgent = ua.random
options = Options()
# options.add_argument('--headless')
options.add_experimental_option ('excludeSwitches', ['enable-logging'])
options.add_experimental_option("prefs", {"profile.default_content_setting_values.notifications": 1})
options.add_argument("--disable-infobars")
options.add_argument("--disable-extensions")
options.add_argument("start-maximized")
options.add_argument('window-size=1920x1080')
options.add_argument('--no-sandbox')
options.add_argument('--disable-gpu')
options.add_argument(f'user-agent={userAgent}')
srv=Service(ChromeDriverManager().install())
driver = webdriver.Chrome (service=srv, options=options)
waitWebDriver = WebDriverWait (driver, 10)
link = f"https://www.pferdewetten.de/"
driver.get (link)
但我总是只得到这些信息:
有什么方法可以使用 selenium 加载此网站吗?
可能 elenium 驱动 ChromeDriver 启动 google-chrome Browsing Context is
要逃避检测,您可以进行如下一些调整:
- 去掉
--no-sandbox
参数,执行为non-root 用户。 - 删除
--disable-infobars
参数,因为它不再有效。 - 删除
--disable-extensions
参数,因为它不再有效。 - 添加一个实验性选项
"excludeSwitches", ["enable-automation"]
来逃避检测。 - 添加一个实验性选项
'useAutomationExtension', False
来逃避检测。 - 添加参数
'--disable-blink-features=AutomationControlled'
以逃避检测。
实际上您的代码块将是:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from selenium.webdriver.chrome.service import Service
from webdriver_manager.chrome import ChromeDriverManager
options = Options()
options.add_argument("start-maximized")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option('excludeSwitches', ['enable-logging'])
options.add_experimental_option('useAutomationExtension', False)
options.add_argument('--disable-blink-features=AutomationControlled')
driver = webdriver.Chrome(service=Service(ChromeDriverManager().install()), options=options)
driver.get("https://www.pferdewetten.de/")
driver.quit()