【发布时间】:2018-07-24 15:21:33
【问题描述】:
我正在尝试使用 Python 抓取此网页: https://fftoolbox.scoutfantasysports.com/football/rankings/PrintVersion.php
我一直在使用 requests 包。我可以通过设置verify=False 来“解决”这个问题,但是我读到这并不安全。在其他线程中,人们说将requests.get() 函数指向相关证书的文件路径。我从浏览器中导出了证书,然后尝试了,但没有运气。这个
requests.get('https://fftoolbox.scoutfantasysports.com/football/rankings/PrintVersion.php',verify='C:/Users/ericb/Desktop/fftoolboxscoutfantasysportscom.crt')
仍然出现 SSL 错误
SSLError: HTTPSConnectionPool(host='fftoolbox.scoutfantasysports.com', port=443): Max retries exceeded with url: /football/rankings/PrintVersion.php (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'ssl3_get_server_certificate', 'certificate verify failed')],)",),))
还有这个
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 存储库中。但我不想做任何会危及我安全的事情,比如上传密钥或其他事情。
【问题讨论】:
-
尝试向请求添加标头
-
我试过了,但我仍然收到 SSL 错误
标签: python ssl web-scraping certificate