python在尝试抓取网页时出现SSL错误

2024-09-30 08:18:54 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试使用Python抓取此网页: https://fftoolbox.scoutfantasysports.com/football/rankings/PrintVersion.php

我一直在使用请求包。我可以通过设置verify=False来“解决”这个问题,但是我读到这是不安全的。在其他线程中,人们说要将requests.get()函数指向相关证书的文件路径。我从浏览器中导出了证书,然后尝试了一下,但没有成功。这个

requests.get('https://fftoolbox.scoutfantasysports.com/football/rankings/PrintVersion.php',verify='C:/Users/ericb/Desktop/fftoolboxscoutfantasysportscom.crt')

仍然提供SSL错误

^{pr2}$

还有这个

requests.get('https://fftoolbox.scoutfantasysports.com/football/rankings/PrintVersion.php',cert='C:/Users/ericb/Desktop/fftoolboxscoutfantasysportscom.crt')

收益率

Error: [('PEM routines', 'PEM_read_bio', 'no start line'), ('SSL routines', 'SSL_CTX_use_PrivateKey_file', 'PEM lib')]

我以前也做过相当数量的网络垃圾,但直到现在我从来没有处理过证书。我怎么才能避开这个?我还应该注意到,我想把我最后的Python脚本和它使用的任何文件放到一个公共GitHub repo中。但我不想做任何危及我安全的事,比如上传密钥之类的。在


Tags: 文件httpscomsslgetrequestspem证书
1条回答
网友
1楼 · 发布于 2024-09-30 08:18:54

服务器配置错误,它没有发送它需要发送的中间证书。 请参阅此报告:https://www.ssllabs.com/ssltest/analyze.html?d=fftoolbox.scoutfantasysports.com&hideResults=on

Certificates provided 1 (1776 bytes)

Chain issues Incomplete

https://sslanalyzer.comodoca.com/?url=fftoolbox.scoutfantasysports.com

Trusted by Microsoft? No (unable to get local issuer certificate) UNTRUSTED

Trusted by Mozilla? No (unable to get local issuer certificate) UNTRUSTED

使用openssl s_client -connect fftoolbox.scoutfantasysports.com:443 -showcerts可以看到:

Certificate chain
 0 s:/OU=Domain Control Validated/CN=fftoolbox.scoutfantasysports.com
   i:/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2

web服务器应该配置为发送/C=US/ST=Arizona/L=Scottsdale/O=GoDaddy.com, Inc./OU=http://certs.godaddy.com/repository//CN=Go Daddy Secure Certificate Authority - G2中间证书,但它没有。在

所以,你可以联系网站,告诉他们他们配置错误。正如第二个链接所示,你将不是唯一一个受此影响的人。在

或者,您可以将丢失的证书作为完全信任的证书添加到本地,但这会降低您的安全性。您还可以在本地下载丢失的证书(不是网站上的证书,而是中间证书),并在您的requests.get调用中添加verify=/path/to/certificate。在

相关问题 更多 >

    热门问题