2011-08-12 12 views
2

こんにちは私は自分のプログラム(Python v2.6)のために長いURLの一連の画像(例:site.com/pic.jpg)を取得しています。私はurllib.urlretreive()を使用しています。場合によっては、ユーザー名とパスワードを要求するURLが表示されることがあります。だから私はurllib.urlretreive()をtry/exceptに置いてそれらのURLを避けるが、try/exceptを飛ばしてそのURLをスキップするエラーを催促するために偽のユーザー名とパスワードを挿入する必要がある。パスワード要求があり、自動的にURLをスキップするときに私が感知できる方法はありますか?これは非常に長いリストで、私はここで時折入力を待つことを望んでいません...ありがとうpythonでurllibを使用しているときにパスワードで保護されたサイトを検出しました

+2

多くの場合、この情報はHTTPヘッダーから取得できます。 –

答えて

2

サイトにHTTP認証がある場合は、リクエストにヘッダーを追加する必要がありますパスワード(偽またはその他)。 urllib2を使用してこれを行う方法は次のとおりです。

import base64 
import urllib2 

headers = {'Authorization': 'Basic ' + base64.encodestring('[username]:[password]')} 
req = urllib2.Request(url, data, headers) 
resp = urllib2.urlopen(req).read() 

ユーザー名/パスワードが間違っている場合、これはurllib2.HTTPError: HTTP Error 401: Unauthorizedを返しますが、それが必要とされない場合、サーバーは、認証を無視します。

+0

'data'変数とは何ですか? –

+0

ああ、申し訳ありません、それはサーバーにPOSTするデータがあればそれです。何もない場合は、空の文字列を使用できます。 –