2011-08-12 63 views
2

嗨,當我有很長的系列,我爲了我取回我的程序(在Python V2.6)圖像(例如,site.com/pic.jpg)的網址。我正在使用urllib.urlretreive()。有時URL會提示我輸入用戶名和密碼。所以我放在urllib.urlretreive()在嘗試/除了爲了避免這些網址,但我仍然需要插入一個假的用戶名和密碼來提示錯誤,觸發嘗試/除了跳過該網址。有什麼方法可以檢測到有密碼請求時自動跳過網址嗎?這是一個很長的名單,我不想在這裏等候的全部時間推進入偶爾...謝謝傳感密碼保護的網站在使用Python的urllib

+2

在許多情況下,您將能夠從HTTP標頭獲取此信息。 –

回答

2

如果網站具有HTTP認證,你需要一個頭添加到您的要求插入一個用戶名和密碼(假的或其他)。以下是如何使用urllib2來做到這一點。

import base64 
import urllib2 

headers = {'Authorization': 'Basic ' + base64.encodestring('[username]:[password]')} 
req = urllib2.Request(url, data, headers) 
resp = urllib2.urlopen(req).read() 

這將返回urllib2.HTTPError: HTTP Error 401: Unauthorized如果用戶名/密碼不正確,但如果不需要它的服務器將忽略驗證。

+0

什麼是數據變量? –

+0

啊,對不起,那是你想要發送到服務器的任何數據(如果有的話)。如果你沒有,你可以使用一個空字符串。 –