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

遇TypeError:无法将SSLCertVerificationError与字符串拼接,求解决

问题解决:TypeError 及代码其他问题修复

核心错误原因

你遇到的TypeError是因为在URLError的异常处理中,e.reason可能是一个异常对象(比如SSLCertVerificationError),而非字符串,直接和字符串拼接会触发类型错误。另外HTTPError分支里的e.code是整数,直接与字符串拼接也会出现同样问题。

修复后的代码

import urllib.request
import urllib.error

def myfunction(md5):  # 修正函数名拼写错误
    reponse = None  # 提前初始化变量,避免后续访问报错
    try:
        user_agent = "Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0"
        headers = {"User-Agent": user_agent}
        # 改用HTTPS,避免谷歌强制跳转导致的SSL问题
        url = "https://www.google.fr/search?hl=fr&q=" + md5
        requete = urllib.request.Request(url, None, headers)
        reponse = urllib.request.urlopen(requete)
        
        # 将判断逻辑移到try块内,确保reponse已成功赋值
        content = reponse.read().decode('utf-8')  # 解码为字符串再判断
        if "no document" in content:
            print("[-] HASH NOT FOUND VIA GOOGLE")
    except urllib.error.HTTPError as e:
        # 将整数转为字符串后拼接,或用f-string
        print(f"ERROR HTTP: {e.code}")
    except urllib.error.URLError as e:
        # 将reason转为字符串,处理可能的异常对象
        print(f"ERROR of URL : {str(e.reason)}")
    finally:
        # 确保响应对象关闭
        if reponse:
            reponse.close()

关键修复点

  • 类型拼接错误:使用f-string或str()将非字符串类型(如整数、异常对象)转为字符串后再输出,避免类型错误。
  • 变量未初始化:提前初始化reponse变量,避免异常分支外访问未定义的变量。
  • 逻辑位置错误:将reponse.read()的判断逻辑移到try块内,只有请求成功时才执行该判断。
  • 协议问题:将URL从http改为https,避免谷歌强制跳转引发的SSL验证问题。
  • 函数名拼写:修正myfuntion为myfunction,避免调用时出错。
  • 资源释放:添加finally块关闭响应对象,避免资源泄漏。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 18:25:39