Selenium爬取HTTP网站自动跳转问题的解决

在Linux服务器上我编写了一个爬虫程序,通过Selenium+Chrome Driver的方式来进行数据爬取,其中有一个网站是HTTP的,没有启用HTTPS,在Linux上运行没有问题。最近打算把这个程序迁移到Windows上运行,但是遇到一个奇怪的问题,就是Chrome会自动把HTTP改为HTTPS,在Selenium里面看到的日志报错如下:

复制代码
[4008:19112:0116/155746.605:ERROR:ssl_client_socket_impl.cc(876)] handshake failed; returned -1, SSL error code 1, net_error -113

selenium.common.exceptions.WebDriverException: Message: unknown error: net::ERR_SSL_VERSION_OR_CIPHER_MISMATCH
  (Session info: chrome=132.0.6834.84)

按照网上的很多帖子的介绍,测试之后都不能解决问题,例如以下的这些选项设置:

python 复制代码
options = ChromeOptions()
options.add_argument("--disable-features=AutoRedirectToHttps")
options.add_argument('--ignore-certificate-errors')
options.add_argument('--ignore-ssl-errors')
options.add_argument("--disable-insecure-content-unmasking")
options.add_argument("--allow-running-insecure-content")
options.add_argument('--disable-web-security')
options.accept_insecure_certs = True

另外也试过了在Chrome浏览器里面输入chrome://flags,然后查找https-upgrades选项,也没有找到。

最后终于找到一个设置可以禁止自动跳转到https,那就是

python 复制代码
options.add_argument("--disable-features=StrictTransportSecurity")

不过这个设置只对某些版本的Chrome才起作用,我测试了132.0.6834.83,128.0.6613.119,119.0.6020.2这三个版本,只有128.0.6613.119这个版本可以,比较奇怪,另外这个版本有一个不好的地方,就是打开这些HTTP网站测试时,会额外打开两个空白窗口,鼠标点击后才会关闭,不知道是什么原因。

另外还有一个解决方式可以不受Chrome版本限制,但是需要先打开Chrome输入要访问的HTTP网站,在网址左边会有一个显示不安全的图标提示,点击这个提示,在弹出菜单中选择网站设置,然后在不安全的内容浏览设置里面选择允许。这样的话通过Selenium再打开这个网站就不会调到HTTPS了,我推荐用这个方法。

相关推荐
autobaba5 小时前
XPath 1.0 完整用法指南
selenium·rpa
2501_924064117 小时前
2025年主流Web自动化测试工具功能与适用场景对比
前端·测试工具·自动化
芒果树技术1 天前
MangoTree案例分享:基于AtomRIO FPGA平台,客户实现自适应主动减振
测试工具·fpga开发·模块测试
程序员三藏1 天前
白盒测试和黑盒测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
代码游侠1 天前
应用——基于C语言实现的简易Web服务器开发
运维·服务器·c语言·开发语言·笔记·测试工具
程序员三藏1 天前
自动化测试与功能测试详解
自动化测试·软件测试·python·功能测试·测试工具·职场和发展·测试用例
浩子智控1 天前
高可靠电子产品软件工程化
测试工具·架构·系统安全·软件工程·敏捷流程
南汐以墨1 天前
UI自动化测试指南(一):浅解概念
java·测试工具
tyh_keepRunning1 天前
Cursor与MCP的天作之和
selenium·ai·语言模型·chatgpt·idea