2015-05-19 52 views
2

我使用python 2.7 requests module來製作一個網絡爬蟲。但是在向需要證書的網站發送請求時遇到問題。當我做了requests.get(url),它拋出sslError, certificate verify failed, ok.Python請求不可信證書

所以,我想requests.get(url, verify=False),它的工作原理,但它返回元http-equiv="refresh" url='...'和URL不是我提出的要求之一。有沒有辦法解決這個問題或需要發送證書?

我在請求文檔中看到我可以發送證書和密鑰。我有certificate.crt,但我沒有鑰匙,有沒有辦法獲得鑰匙? 該證書是交流認證multipla G5並使用TLS 1.2

+0

聽起來像頁面使用頁面刷新而不是服務器端重定向進行重定向/轉發,所以我沒有看到任何問題。至於證書 - 你是負責網頁和使用SSL證書的人嗎?聽起來好像是主機端的自簽名證書,'requests'不像那些沒有'verify = False'參數的用戶。 – birryree

+0

似乎更像他們的網站不允許直接訪問該網址,因此它會將您重定向到門戶網站。您可能需要找到不同的方式來訪問它,或者它可能需要驗證? – birryree

回答

1

經過很長時間的試圖解決這個問題,我找到了答案。問題不在於SSL證書。

我向一個需要會話的網頁發出請求;我使用的網址是從另一個頁面重定向的。要正確訪問它,我必須向該頁面發送請求並獲取最後一個重定向頁面。

Session.get(url, verify=False) 

其中url是重定向URL:

因此,使用要求Session方法我所做的。