- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有一个包含几千个 URL 的列表,并注意到其中一个在传递到 requests.get()
时作为 SSLError
抛出。下面是我尝试使用 solution suggested in this similar question 来解决这个问题以及使用 ssl.SSLError
的“try & except” block 捕获错误的失败尝试:
url = 'https://archyworldys.com/lidl-recalls-puff-pastry/'
session = requests.Session()
retry = Retry(connect=3, backoff_factor=0.5)
adapter = HTTPAdapter(max_retries=retry)
session.mount('http://', adapter)
session.mount('https://', adapter)
try:
response = session.get(url,allow_redirects=False,verify=True)
except ssl.SSLError:
pass
最后返回的错误是:
SSLError: HTTPSConnectionPool(host='archyworldys.com', port=443): Max retries exceeded with url: /lidl-recalls-puff-pastry/ (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",),))
当我在 Chrome 中打开 URL 时,我收到阻止网页的“不安全”/“隐私错误”。但是,如果我尝试使用 HTTP 而不是 HTTPS 的 URL(例如“http://archyworldys.com/lidl-recalls-puff-pastry/”),它在我的浏览器中工作得很好。每this question ,将 verify
设置为 False
可以解决问题,但我更愿意找到更安全的解决方法。
虽然我知道一个简单的解决方案是从我的数据中删除 URL,但我正在尝试找到一个让我继续(例如,如果在 for 循环
中)的解决方案只需跳过这个错误的 URL 并继续下一个。
最佳答案
我在运行你的代码时得到的错误是:
requests.exceptions.SSLError:
[SSL: CERTIFICATE_VERIFY_FAILED] certificate verify failed (_ssl.c:645)
基于这个需要捕获requests.exceptions.SSLError
而不是ssl.SSLError
,即:
try:
response = session.get(url,allow_redirects=False,verify=True)
except requests.exceptions.SSLError:
pass
虽然您得到的错误看起来有所不同,但这可能是因为您显示的代码与您正在运行的代码不完全相同。无论如何,请查看您收到的确切错误消息,并从中找出要捕获的异常。您也可以尝试像这样捕获更一般的异常,并通过这样做获得您需要捕获的确切异常类:
try:
response = session.get(url,allow_redirects=False,verify=True)
except Exception as x:
print(type(x),x)
pass
关于python - 由于 Python 中的请求不安全的 URL 而捕获 SSLError?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48919078/
您好,我正在尝试通过执行从表存储帐户查询数据的 python 脚本来开始 Azure ML 算法。我用这个来做: entities_Azure=table_session.query_entities
我有一个运行 omniauth-facebook 和 omniauth-twitter 的 Rails 4 应用程序,但所有登录尝试都会遇到 Faraday::SSLError -- SSL_conn
我在 python 中使用一个包,我试图通过简单的打印访问方法我想出了这个错误 ConnectionError: HTTPSConnectionPool(host='xxx.xxxxx.xxx', p
import sslcontext = ssl.create_default_context()context.load_cert_chain('cert.pem', 'key.pem') B
尝试使用 the SnapWrap library 时我遇到过这个错误: File "/usr/local/lib/python2.7/dist-packages/requests-2.7.0-p
我正在编写一个涉及 CAS、jspring 安全检查、重定向等的简单脚本。我想使用 Kenneth Reitz 的 python 请求,因为它很棒!但是,CAS 需要通过 SSL 进行验证,所以我必须
我有一个带有 letsencrypt 证书的 python3 django 网站 一切正常,除了使用 python 请求到本地地址: response = requests.post('http://
我正在编写一个涉及 CAS、jspring 安全检查、重定向等的简单脚本。我想使用 Kenneth Reitz 的 python 请求,因为它很棒!但是,CAS 需要通过 SSL 进行验证,所以我必须
尝试使用 Requests session 发出简单的获取请求,但我不断收到特定站点的 SSLerror。我认为问题可能出在网站上(我使用 https://www.ssllabs.com 进行了扫描,
我正在尝试通过 python 向 iPhone 发送推送通知,如 here 所述但我收到以下错误: Traceback (most recent call last): File "", line
我正在编写一个涉及 CAS、jspring 安全检查、重定向等的简单脚本。我想使用 Kenneth Reitz 的 python 请求,因为它是一项很棒的工作!但是,CAS 需要通过 SSL 进行验证
这是我检查链接的功能。但是当链接是假的时它会抛出一个错误。例如,它适用于 twitter.com 但不适用于 twitt.com。 class Quality_Check: def check
我正在分析加密货币市场数据并使用某些交易所的公共(public) API。该程序每隔几秒发出一次 HTTPS 请求。奇怪的是,它恰好发出了 336 个请求,而在 337 个请求上它总是失败: /.rb
我正在尝试开始使用 PRAW,但在使用 login() 时遇到问题。 我有以下代码: import praw r = praw.Reddit('This is a test bot') r.login
我想使用从服务器生成的证书从我的客户端向服务器进行身份验证。我有一个 server-ca.crt,下面是正在运行的 CURL 命令。如何使用 python 请求模块发送类似的请求。 $ curl -X
我正在使用带有以下代码的 authlib: session = OAuth2Session(client_id, client_secret) token = session.fetch_access
我想使用从服务器生成的证书从我的客户端向服务器进行身份验证。我有一个 server-ca.crt,下面是正在运行的 CURL 命令。如何使用 python 请求模块发送类似的请求。 $ curl -X
当我尝试执行“conda update conda”时,我遇到了这个错误: 请你帮帮我! 最佳答案 如果您在防火墙或代理后面,您可能必须在您的 condarc 中将 ssl_verify 设置为 fa
我有包含 4 行的 fiddle.py import requests url = "https://randomuser.me/api/" locations = requests.get(url,
我不能在 Python 中使用不同的代理。 我的代码: import requests proxies = { "https":'https://154.16.202.22:3128',
我是一名优秀的程序员,十分优秀!