2012-07-05 80 views
4

在python中,我想發送一個請求到一個url,它會返回一些信息給我。問題是,如果我嘗試從瀏覽器訪問網址,會出現一個彈出框並要求輸入用戶名和密碼。然而,我有這個url的用戶名和密碼,我不知道如何讓python自動完成這些字段來訪問URL。從python腳本訪問受密碼保護的url

這是我的代碼,返回401錯誤:

bing = "https://api.datamarket.azure.com/Data.ashx/Bing/SearchWeb/Web?Query=% 
(term)s&$top=50&$format=json" %__function() 
results = urllib2.urlopen(bing).read() 

編輯:只是爲了澄清,function返回一個名爲term變量,因爲它有術語在URL查詢功能

回答

7

你」最有可能面臨HTTP基本認證。這可以在urllib2中完成,但有點令人厭煩。如何做到這一點的說明在這裏:

http://www.voidspace.org.uk/python/articles/urllib2.shtml#id5

但是,如果你還沒有這樣做多少工作,urllib2的,現在是一個好時機,切換到請求庫。它更方便用戶使用 - 並且要做的就是一行代碼 - 不像urllib2中的混亂方式。如何庫,可以發現請求

requests.get('https://api.github.com/user', auth=('user', 'pass')) 

更多細節:http://docs.python-requests.org/en/latest/user/quickstart/#basic-authentication

要安裝請求庫,你只需要做:

sudo pip install requests 

如果您使用的是Windows,你應該放下sudo部分。

+1

非常感謝,非常感謝 – adohertyd 2012-07-05 12:05:37