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了,我推荐用这个方法。

相关推荐
卓码软件测评9 小时前
第三方高校软件课题验收测试机构:【使用Apifox测试gRPC服务步骤和技巧】
网络·测试工具·测试用例
2501_9240641118 小时前
如何测试接口最大并发量及推荐实用工具
测试工具
玩转数据库管理工具FOR DBLENS19 小时前
DBLens:开启数据库管理新纪元——永久免费,智能高效的国产化开发利器
数据结构·数据库·测试工具·数据库开发
微尘hjx20 小时前
【目标检测软件 01】YOLO识别软件功能与操作指南
人工智能·测试工具·yolo·目标检测·计算机视觉·ai·pyqt
测试人社区-千羽1 天前
Apple自动化测试基础设施(XCTest/XCUITest)面试深度解析
运维·人工智能·测试工具·面试·职场和发展·自动化·开源软件
测试人社区—小叶子1 天前
移动开发新宠:用Flutter 4.0快速构建跨平台应用
运维·网络·人工智能·测试工具·flutter·自动化
数据科学小丫1 天前
浏览器 driver (Chrome & Edge)驱动安装、Selenium 安装,使用Selenium进行网页自动化操作与数据抓取(Edge)
selenium·测试工具·自动化
测试19981 天前
Selenium(Python web测试工具)基本用法详解
自动化测试·软件测试·python·selenium·测试工具·职场和发展·测试用例
测试人社区-千羽1 天前
AI测试中的伦理考虑因素
运维·人工智能·opencv·测试工具·数据挖掘·自动化·开源软件