我正在尝试从许多没有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)>
似乎我找到了解决方案:
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)