忽略boilerpipe python包装器web提取器的SSL验证?

时间:2018-03-19 19:14:35

标签: python boilerpipe

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

我了解如何删除请求库中的SSL认证要求,但在samppipe方面我似乎无法找到解决方案。 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)>

1 个答案:

答案 0 :(得分: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)