0

我正在尝试从许多没有 SSL 认证的站点中提取数据。我正在使用锅炉管道 python 包装器来提取没有 HTML 的文本并将其写入文本文件。

我了解如何在请求库中删除 SSL 认证要求,但在锅炉管道方面我似乎找不到解决方案。Boilerpipe 是一个了不起的 Java 库,用于为 NLP 准备抓取的数据,所以我希望能够在 Python 中使用它。

这是我正在运行的代码:

for url in urls:
    extractor = Extractor(url='http://www.' + url)
    extracted_text = extractor.getText()
    with open('websitestext.txt', 'a') as webtextfile:
        webtextfile.write(extracted_text)

这是我认为导致问题的错误(SSL认证):

urllib.error.URLError: <urlopen error [SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:748)>
4

1 回答 1

0

看来我找到了一个解决方案:

import ssl

try:
        _create_unverified_https_context = ssl._create_unverified_context
    except AttributeError:
        # Legacy Python that doesn't verify HTTPS certificates by default
        pass
    else:
        # Handle target environment that doesn't support HTTPS verification
        ssl._create_default_https_context = _create_unverified_https_context

并通过添加一个例外:

for url in urls:
    try:
        extractor = Extractor(url='http://www.' + url)
        extracted_text = extractor.getText()
    except:
        pass
    with open('websitestext.txt', 'a') as webtextfile:
        webtextfile.write(extracted_text)
于 2018-03-19T19:36:11.490 回答