SSL错误:超过了URL错误的最大重试次数?如何修复?

4

我正在尝试从网站上抓取文本,并使用requests模块来实现。

以给定的代码为例(这里以Facebook为例)

requests.get('http://facebook.com')

我收到了以下错误信息:

SSLError: HTTPSConnectionPool(host='facebook.com', port=443): Max retries exceeded with url: / (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')])")))

我已经尝试过以下方法,但没有成功:

pip install certifi
pip install certifi_win32

任何帮助都将不胜感激!谢谢!
4个回答

9

你可以尝试这种方法。

import requests
from urllib3.exceptions import InsecureRequestWarning
from urllib3 import disable_warnings

disable_warnings(InsecureRequestWarning)

page = requests.get('http://facebook.com', verify=False)

print(page.content)

1

0

我在爬取网站时遇到了同样的问题。我尝试将 verify 设置为 False,并使用 CA 证书,但两者都不起作用。通过阅读文档,我发现 会话对象

由于我向同一主机发出了多个请求,所以我遇到了“超过 URL 的最大重试次数”的问题。

针对您的情况,您可以尝试这样做:

s = requests.Session()
response = s.get('http://facebook.com')

0
我遇到了同样的问题,只是有一个细微的差别。
我试图通过IP地址访问该网站。
requests.get('http://10.20.30.40', verify=False)

所有提供的解决方案都失败了,直到我使用了域名而不是IP地址。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接