2016-03-07 75 views
1

我背後的公司代理(Isa服務器)。代理後面的Python請求

使用urllib2時,我可以通過代理連接到互聯網沒有任何問題,但使用請求庫時,我不能。

這裏是我的urllib2代碼:

proxy = urllib2.ProxyHandler({}) 
opener = urllib2.build_opener(proxy) 
urllib2.install_opener(opener) 

page = urllib2.urlopen('http://www.google.com') 
print page.getcode() 

此打印「200」和與工作要求做同樣的

然而,當細,我收到了407碼並不起作用。

proxy_dict = { 
    'http': 'http://10.20.23.5:8080', 
    'https': 'ftp://10.20.23.5:8080', 
    'ftp': 'https://10.20.23.5:8080' 
} 

page = requests.get('http://www.google.com', proxies=proxy_dict) 
print page.status_code 
print page.reason 

此打印「407」和理由:「需要代理身份驗證(Forefront TMG的需要授權來滿足請求訪問Web代理過濾器被拒絕。)」

即使我傳遞給請求代理從urllib2不起作用:

page = requests.get('http://http://www.google.com', proxies=urllib2.getproxies()) 

Urllib2正在做的事情,請求不是。

任何幫助?

回答

0

如果你的代理需要身份驗證,您需要設置這些變量:

proxy_dict = { 
    'http': 'http://username:[email protected]:8080', 
    'https': 'https://username:[email protected]:8080', 
    'ftp': 'ftp://username:[email protected]:8080' 
} 
+0

爲什麼urllib2的作品,未經用戶名和密碼? – janscas

+0

順便說一句我已經試過這個,不工作 – janscas

+0

檢查[這](http://stackoverflow.com/questions/16703936/proxy-connection-with-python)出來。可能會有所幫助。 –