You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

解决Selenium网站截图时SSL握手失败(handshake failed)问题求助

解决Selenium Chrome SSL握手失败导致截图失败的问题

我用Selenium实现网站全屏截图时,部分网站访问出现SSL握手失败错误,导致无法截图,错误日志如下:

t[0901/133518.496:ERROR:ssl_client_socket_impl.cc(968)] handshake failed; returned -1, SSL error code 1, net_error -100
[0901/133522.374:ERROR:ssl_client_socket_impl.cc(968)] handshake failed; returned -1, SSL error code 1, net_error -100
[0901/133527.577:ERROR:ssl_client_socket_impl.cc(968)] handshake failed; returned -1, SSL error code 1, net_error -100
[0901/133527.862:ERROR:ssl_client_socket_impl.cc(968)] handshake failed; returned -1, SSL error code 1, net_error -100

我的实现代码:

# selenium 4
from selenium import webdriver
from selenium.webdriver.chrome.service import Service as ChromeService
from webdriver_manager.chrome import ChromeDriverManager
import os 
import datetime


#ヘッドレス実行 ※全画面用
options = webdriver.ChromeOptions()
options.add_argument('--headless')
options.add_argument("--ignore-certificate-error")
options.add_argument('--ignore-certificate-errors-spki-list')
options.add_argument("--ignore-ssl-errors")

driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager().install()),options=options)

driver.implicitly_wait(10) # seconds

driver.get("https://パズドラ.gamewith.jp/")
#driver.get("https://laboratory.kazuuu.net/get-the-width-and-height-of-an-image-using-python/")
#driver.get("https://pad.gungho.jp/member/")
#driver.get("https://www.post.japanpost.jp/zipcode/dl/oogaki-zip.html")

#保存する画像ファイル名
fname = datetime.datetime.now().strftime('%Y-%m-%d-%H-%M-%S')

#スクショ保存ディレクトリが存在しなければ生成
if os.path.isdir(os.getcwd()+"\\ss") == False:
    os.mkdir(os.getcwd()+"\\ss")

#ウインドウサイズをWebサイトに合わせて変更 ※全画面用
width = driver.execute_script("return document.body.scrollWidth;")
height = driver.execute_script("return document.body.scrollHeight;")
driver.set_window_size(width,height)

#スクショをPNG形式で保存
driver.get_screenshot_as_file(os.getcwd() + "\\ss\\" + fname + ".png")

解决方案

  • 补充SSL忽略参数:现有参数覆盖场景有限,添加以下参数进一步放宽证书校验:

    options.add_argument('--allow-insecure-localhost')
    options.add_argument('--disable-web-security')
    options.add_argument('--allow-running-insecure-content')
    options.add_argument('--ignore-urlfetcher-cert-requests')
    
  • 指定ChromeDriver版本:新版Chrome可能存在SSL策略兼容性问题,指定稳定版本安装:

    driver = webdriver.Chrome(service=ChromeService(ChromeDriverManager(driver_version="114.0.5735.90").install()), options=options)
    
  • 添加真实用户代理:无头模式默认代理可能被网站拦截,补充浏览器用户代理:

    options.add_argument('user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/116.0.0.0 Safari/537.36')
    
  • 切换旧版无头模式:新版无头模式(--headless=new)可能存在SSL兼容性问题,切换回旧版:

    options.add_argument('--headless=old')
    
  • 检查系统根证书:若上述方法无效,可能是系统缺失网站根证书,手动导入对应根证书到系统证书库。

内容的提问来源于stack exchange,提问作者yushi

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.11 17:43:12