【问题标题】:Getting [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590) error when trying to read a URL through FancyURLopener尝试通过 FancyURLopener 读取 URL 时出现 [SSL: CERTIFICATE_VERIFY_FAILED] 证书验证失败 (_ssl.c:590) 错误
【发布时间】:2018-10-12 10:21:48
【问题描述】:

我正在尝试使用 FancyURLopener 执行以下代码(从 html 读取内容)。该代码在过去 2 个月左右运行良好,但现在它开始抛出错误:IOError: [Errno socket error] [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:590)

当我尝试在本地运行它时,它就像一个魅力。

从 urllib 导入 urlopen

从 urllib 导入 FancyURLopener

从 bs4 导入 BeautifulSoup

导入请求

doc_name = "XYZ"

类 MyOpener(FancyURLopener):

        version = 'Mozilla/5.0 (Windows; U; Windows NT 5.1; it; rv:1.8.1.11) Gecko/20071127 Firefox/2.0.0.11'

mopen = MyOpener()

def extract_count_from_url(url, tag_name, tag_type, html_tag) :

      html = mopen.open(url).read() 
      soup = BeautifulSoup(html, "html.parser")

我已经在 stackoverflow 和 google 上搜索过了。我得到的答案主要是使用 urllib2 / urllib 库并使用用户代理 + 将上下文设置为 ssl.CERT_NONE (How do I disable the ssl check in python 3.x?)

但我想当我使用 FancyURLopener 时同样不适用,因为当我在 open() 方法中设置上下文以及 url 时,它会引发无效参数错误。

python 版本 = Python 2.7.12

任何线索都会有所帮助。

提前致谢。

【问题讨论】:

    标签: python-2.7 ssl fancyurlopener


    【解决方案1】:

    我想出了一个解决方法。 在代码中添加了以下部分,它绕过了安全性。

    导入 ssl

    ssl._create_default_https_context = ssl._create_unverified_context

    【讨论】:

      猜你喜欢
      • 2015-12-21
      • 2019-07-03
      • 1970-01-01
      • 2018-07-29
      • 2017-06-01
      • 2017-02-05
      • 2023-03-03
      • 1970-01-01
      • 2022-01-11
      相关资源
      最近更新 更多