2016-12-18 29 views
0

以下のコードを使用して、認証でhttpからリソースを取得する最も一般的な方法を理解しています。私は、プロキシを設定する必要がある場合urllib2プロキシ経由の認証を伴うhttpリクエスト

import urllib2, base64 

request = urllib2.Request("http://api.foursquare.com/v1/user") 
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '') 
request.add_header("Authorization", "Basic %s" % base64string) 
result = urllib2.urlopen(request) 

私の質問があり、私は上記のコードブロックにどのようなコードを追加する必要がありますか?私は以下のものを試しましたが、うまくいきませんでした。エラーメッセージはurllib2.URLErrorです:プロキシサーバーを使用すると、ProxyBasicAuthHandlerを使用する必要があり、ユーザ/パス認証を使用するように、あなたが必要な場合は

import urllib2 
import base64 


proxy_id = "ididid" 
proxy_pw = "password" 
proxyhandler = urllib2.ProxyHandler({"http":"http://"+proxy_id+":"+proxy_pw+"@proxy:8080"}) 
opener = urllib2.build_opener(proxyhandler) 
urllib2.install_opener(opener) 


request = urllib2.Request("http://api.foursquare.com/v1/user") 
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '') 
request.add_header("Authorization", "Basic %s" % base64string) 
result = urllib2.urlopen(request) 

答えて

0

:ここ

<urlopen error [Errno 10060] A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond> 

はコードである

import urllib2 
import base64 


proxy_id = "ididid" 
proxy_pw = "password" 

proxy_handler = urllib2.ProxyHandler({'http': 'http://proxy:8080'}) 
proxy_auth_handler = urllib2.ProxyBasicAuthHandler() 
proxy_auth_handler.add_password('realm', 'host', proxy_id, proxy_pw) 

opener = urllib2.build_opener(proxy_handler, proxy_auth_handler) 
urllib2.install_opener(opener) 

request = urllib2.Request("http://api.foursquare.com/v1/user") 
base64string = base64.encodestring('%s:%s' % (username, password)).replace('\n', '') 
request.add_header("Authorization", "Basic %s" % base64string) 
result = urllib2.urlopen(request) 
+0

ありがとうございます。私は私のプロキシブロックが他のHTTP Web Scapingでうまく動作することに言及するのを忘れていました。私のurllib2リクエストブロックは、プロキシがない場合にうまく機能します。しかし、プロキシとHTTPの両方の認証がある場合、それらは一緒に動作しません....したがって、プロキシ設定のコードを変更するだけではあまり役に立ちませんでした。あなたの助けをもう一度ありがとう! –

0

ご質問申し訳ございません。コードはまったく正しいものでした。間違ったプロキシHTTPを使用したので、すべての問題が発生しています。

関連する問題