chrome报错ssl_client_socket_impl.cc报错解决
背景
帮公司的一个爬虫项目安装完成了google chrome headless,其在使用selenium + chrome爬取内部的一个合作厂家的站点信息时,出现了无法获取内容的情况,同时也没有明显的报错信息。使用内部httpd服务搭建的测试页,可以正常获取。
解决方法
帮其分析后,直接使用chrome –headless –disable-gpu –dump-dom https://www.testsite.com/时,发现报错:ERROR:ssl_client_socket_openssl.cc(1158)] handshake failed; returned -1, SSL error code 1, net_error -100 。这个报错信息就比较直观了,是SSL报错,也就是说明和HTTPS相关,通过检索相关信息,发现可以加两条即可解决问题:
1options.add_argument('--ignore-certificate-errors') #主要是该条
2options.add_argument('--ignore-ssl-errors')
对应的完整的采集测试代码为:
1from selenium import webdriver
2chrome_options = webdriver.ChromeOptions()
3chrome_options.add_argument('--no-sandbox')
4chrome_options.add_argument('--headless')
5chrome_options.add_argument('--disable-gpu')
6chrome_options.add_argument('--ignore-certificate-errors')
7browser = webdriver.Chrome(options=chrome_options)
8browser.get('https://blog.361way.com')
9data = browser.page_source
捐赠本站(Donate)
如您感觉文章有用,可扫码捐赠本站!(If the article useful, you can scan the QR code to donate))
- Author: shisekong
- Link: https://blog.361way.com/chrome-headless-ssl-error/6436.html
- License: This work is under a 知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议. Kindly fulfill the requirements of the aforementioned License when adapting or creating a derivative of this work.