我只是想知道,为什么所有的网站,我打开通过 selenium webdriver有SSL证书错误?我得确保连接安全。
我知道,这个问题可以通过添加options.add_argument('--ignore-certificate-errors')
来解决。但它会忽略错误,我需要修复它。事实上,在谷歌Chrome更新到115版本之前,一切都很好。
代码:
import time
from seleniumwire import undetected_chromedriver as uc
from selenium.webdriver.chrome.options import Options
options = Options()
# options.add_argument('--ignore-certificate-errors')
driver = uc.Chrome(options=options)
driver.get('https://google.com')
time.sleep(100)
和Chrome窗口:https://ibb.co/VDzDTYN
1条答案
按热度按时间voj3qocg1#
在selenium-wire PyPI页面中,开发人员解释说:
Selenium Wire的工作原理是通过在后台启动的内部代理服务器重定向浏览器流量。当请求流经代理时,它们被拦截和捕获。
并在证书部分解释:
Selenium Wire使用自己的根证书来解密HTTPS流量。浏览器通常不需要信任此证书,因为Selenium Wire会告诉浏览器将其添加为异常。这将允许浏览器正常运行,但它会在地址栏中显示“不安全”消息(和/或解锁挂锁)。如果您希望摆脱此消息,您可以手动安装根证书。
总而言之,安全连接是使用网站证书在selenium-wire的内部代理服务器和您正在访问的网站之间建立的,而您控制的浏览器和selenium-wire的内部代理服务器之间的连接使用一种自签名证书,这会触发浏览器安全警报。以我的拙见和使用selenium-wire的短暂经验,应该可以忽略该错误或安装根证书,如文档所示。
无论如何,selenium-wire允许添加您自己的证书。我认为,如果你使用一个有效的证书,非安全挂锁应该消失。我没有亲自试过。
希望对你有帮助,抱歉我的英语不好。