如何使用Python和urllib2獲取受保護頁面的內容?使用Python獲取受保護網頁的內容
我需要爲我試圖檢索的頁面指定一個用戶名和密碼..例如:
content = urllib2.urlopen(URL, username, password).read()
我知道這是不是urllib2的API的一部分。這只是給什麼,我需要一個例子,從API。
如何使用Python和urllib2獲取受保護頁面的內容?使用Python獲取受保護網頁的內容
我需要爲我試圖檢索的頁面指定一個用戶名和密碼..例如:
content = urllib2.urlopen(URL, username, password).read()
我知道這是不是urllib2的API的一部分。這只是給什麼,我需要一個例子,從API。
我建議你看看python requests庫。
開箱即用很好的支持basic http authentication。
例如
import requests
content = requests.get(URL, auth=('user', 'pass'))
使用requests
您還可以設置sessions
(用於管理Cookie),並輕鬆地POST
數據(例如,登錄表單),並保持cookie來瀏覽所有網頁只登錄用戶訪問。
閱讀更多關於session objects和posting data的出色文檔。
如果你絕對必須使用urllib2
這裏是從另一個線程採取基本的HTTP驗證一個有用的片段:
import urllib2, base64
request = urllib2.Request("http://api.foursquare.com/v1/user")
base64string = base64.standard_b64encode('%s:%s' % (username, password))
request.add_header("Authorization", "Basic %s" % base64string)
result = urllib2.urlopen(request)
你可以用urllib2的做到這一點只要看看Urllib docs
它實際上有很多使用像硒這樣的網絡驅動程序更容易進入形式,但關於硒的東西是它打開一個實際的窗口,而urllib在後臺,但硒更容易使用
這些只是一些建議,我希望幫助
HTML頁面通常以兩種方式保護;使用cookie標記或使用HTTP驗證標頭。你需要弄清楚哪一個,然後得到這個cookie(通常通過POST用戶名和密碼到一個特定的登錄表單動作),或者通過添加一個[授權標頭](http://stackoverflow.com/questions/635113/python -urllib2-基本-HTTP認證和-TR-IM) –