我正在尝试使用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中。但我不想做任何危及我安全的事,比如上传密钥之类的。在
服务器配置错误,它没有发送它需要发送的中间证书。 请参阅此报告:https://www.ssllabs.com/ssltest/analyze.html?d=fftoolbox.scoutfantasysports.com&hideResults=on
或https://sslanalyzer.comodoca.com/?url=fftoolbox.scoutfantasysports.com
使用
openssl s_client -connect fftoolbox.scoutfantasysports.com:443 -showcerts
可以看到: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
。在相关问题 更多 >
编程相关推荐