我有一个关于 --headless
的问题用于 Chrome 的 Python Selenium 中的模式。
代码
from selenium import webdriver
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
CHROME_DRIVER_DIR = "selenium/chromedriver"
chrome_options = webdriver.ChromeOptions()
caps = DesiredCapabilities().CHROME
chrome_options.add_argument("--disable-dev-shm-usage")
chrome_options.add_argument("--remote-debugging-port=9222")
chrome_options.add_argument("--headless") # Runs Chrome in headless mode.
chrome_options.add_argument('--no-sandbox') # # Bypass OS security model
chrome_options.add_argument("--disable-extensions")
chrome_options.add_argument("--disable-gpu")
browser = webdriver.Chrome(desired_capabilities=caps, executable_path=CHROME_DRIVER_DIR, options=chrome_options)
browser.get("https://www.manta.com/c/mm2956g/mashuda-contractors")
print(browser.page_source)
browser.quit()
当我删除
chrome_options.add_argument("--headless")
一切正常,但有了这个--headless*
下一个问题Please enable cookies.
Error 1020 Ray ID: 53fd62b4087d8116 • 2019-12-04 11:19:28 UTC
Access denied
What happened?
This website is using a security service to protect itself from online attacks.
Cloudflare Ray ID: 53fd62b4087d8116 • Your IP: 168.81.117.111 • Performance & security by Cloudflare
普通模式和
--headless
有什么区别? ?
最佳答案
这是 HTTP User-Agent
Cloudflare 不喜欢的 header 。
要解决此问题,只需更改您的 user-agent
chrome 选项(以下代码适用于 Python 中的 Selenium):
option.add_argument('--headless')
option.add_argument("user-agent=Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.125 Safari/537.36")
关于python - 通过 Selenium Python 在正常/ headless 模式下使用 ChromeDriver/Chrome 访问 Cloudflare 网站有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59174899/