当我运行代码并以无头模式执行时,收到消息" 401-未经授权:尚未应用该请求,因为它缺少目标资源的有效身份验证凭据。"。
但是在正常模式下执行完全相同的步骤,则该网页允许我执行所有操作。
对比其他网站使用无头模式没问题,初步猜测是由于网站认证机制导致,想深入检查原因以及解决方案
尝试过设置webdriver属性为undefined和设置user-agent
根据您的描述,问题可能与Selenium的默认用户代理有关,因为该用户代理可能会被目标网站拦截并阻止访问。
您可以尝试使用自定义用户代理来解决此问题,这可以通过在创建WebDriver实例时设置Options来实现。例如:
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
options = Options()
options.add_argument('--headless')
options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.150 Safari/537.36')
driver = webdriver.Chrome(options=options)
其中,user-agent是您想要使用的自定义用户代理字符串。您可以使用浏览器的开发者工具来获取用户代理字符串,或者使用其他可用的字符串。
如果这个方法不能解决问题,那么您需要进一步检查目标网站的身份验证机制,以了解为什么它在无头模式下无法正常工作。