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