我在這里有點瘋狂,覺得我一定錯過了一些明顯的東西。我正在嘗試使用 python 和 urllib3 從網站上抓取數據。我的代碼看起來像>>> import urllib3>>> from bs4 import BeautifulSoup>>>>>> http = urllib3.PoolManager()>>> url = 'https://www.google.com/'>>> r = http.request('GET', url)>>> data = BeautifulSoup(r.data)如果我打開我的終端(我在 Mac 上),激活我的 conda 虛擬環境,然后啟動 python 解釋器,此代碼完全按預期工作,拉下 html 請求并解析數據。當我將代碼放入我的 Python IDE 并將其設置為完全相同的虛擬環境時,HTTP 獲取請求失敗并且我收到以下錯誤{MaxRetryError}HTTPSConnectionPool(host='www.nts.live', port=443): Max retries exceeded with url: /api/v2/shows/powell/episodes?offset=0&limit=12 (Caused by SSLError(SSLError("bad handshake: Error([('SSL routines', 'tls_process_server_certificate', 'certificate verify failed')],)",),)) 我過去曾在 Pycharm 中做過類似的請求,所以這絕對是某個階段的用戶錯誤。除了我的虛擬環境相同之外,我不確定我應該檢查什么?我嘗試了多個不同的鏈接,但問題仍然存在。任何關于為什么會出現此錯誤的想法將不勝感激!
1 回答

DIEA
TA貢獻1820條經驗 獲得超2個贊
此錯誤不是來自 IDE,而是使用模塊中的代碼和其他檢索 http 請求的方法。以上內容存在于我的data_pull.py
文件中,但是我spotify_request.py
還導入了另一個文件。而不是 urllib3,這個文件使用import requests
then requests.get(url)
.
當我在終端中獨立運行代碼時,從未執行過第二次導入,并且代碼運行順利。為了解決這個問題,我用請求庫( https://pypi.org/project/requests/ )替換了所有 urllib3 獲取請求。我還通過使所有請求都使用 urllib3 進行了測試,并且代碼也運行良好。我不確定為什么同時使用兩者都不起作用,但這已經解決了我的錯誤。
TLDR;我無法同時使用 urllib3 和我的包中的 http 調用請求 - 堅持一個!
添加回答
舉報
0/150
提交
取消