2009-10-12 15 views

回答

2

這取決於所使用的身份驗證類型。

  • 一個簡單的例子是Http Authentication
  • 如果網站使用cookie進行身份驗證您需要添加一個cookiejar和登錄通過HTTP
  • 還有更多的權威性方案,因此,找出你所需要的。
+0

我會用蟒文檔的例子 – Guy 2009-10-12 14:14:36

1

據我所知,沒有這樣做的一個簡單方法。基本上,你發出一個請求,服務器響應401所需的授權,這urllib2翻譯成一個例外。

Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
    File "C:\Python25\lib\urllib2.py", line 124, in urlopen 
    return _opener.open(url, data) 
    File "C:\Python25\lib\urllib2.py", line 387, in open 
    response = meth(req, response) 
    File "C:\Python25\lib\urllib2.py", line 498, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "C:\Python25\lib\urllib2.py", line 425, in error 
    return self._call_chain(*args) 
    File "C:\Python25\lib\urllib2.py", line 360, in _call_chain 
    result = func(*args) 
    File "C:\Python25\lib\urllib2.py", line 506, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
    urllib2.HTTPError: HTTP Error 401: Authorization Required 

您必須捕獲這個異常,創建一個urllib2.HTTPPasswordManager對象,用戶名和密碼添加到HTTPPasswordManager,創建一個urllib2.HTTPBasicAuthHandler對象,創建一個opener對象,最後用開門紅獲取網址。代碼和教程,請訪問:http://www.voidspace.org.uk/python/articles/urllib2.shtml#id5