我用Selenium写了一个小Python脚本,我在" heading "模式和无头模式
在标题模式下一切看起来都很好,页面加载正确。使用无头模式,我需要在页面加载之前验证一些captcha…
对于我的测试,我只将options.headless
从False
更改为True
(代码如下)。
我使用Chrome的配置文件,我想象,一旦我用头部模式验证了captcha,它将与无头模式一起工作:我错了…
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.chrome.service import Service
from selenium.webdriver.chrome.options import Options
service = Service("./webdriver/chromedriver")
options = Options()
options.add_argument("start-maximized")
options.add_argument("--disable-gpu")
options.add_argument("user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
"Chrome/95.0.4638.54 Safari/537.36")
options.add_argument("--disable-blink-features=AutomationControlled")
options.add_argument("--user-data-dir=./profile")
options.add_argument("--profile-directory=default")
options.add_experimental_option("excludeSwitches", ["enable-automation"])
options.add_experimental_option("useAutomationExtension", False)
options.headless = False
driver = webdriver.Chrome(service=service, options=options)
driver.get("https://[REDACTED]")
你经历过同样的行为吗?如果有,你是如何处理的?
谢谢!
r .
我最近也不得不通过selenium python的CAPTCHA。我不知道它是否能帮助你,但它可以解决的方法是手动解决CAPTCHA,然后你的代码将继续:
在你的代码中,当你到达CAPTCHA时,放:
# launch your browser with selenium as you did
import time
time.sleep(30) # you will have 30sec to solve the CAPTCHA, then program will resume
#continue your code here
这样,除了CAPTCHA解决之外,所有步骤都是自动化的,您将能够保持原来的无头模式。