URLlib2(およびpython 2.7)を使用して、Webサイトからコンテンツを取得しています。これまで、URLlib2 OKを使用してコンテンツをOKにしてきましたが、コンテンツレベルのパスワードを持つWebサイトにアクセスするのはこれが初めてです。私は正当なu:pを持っています(私は明らかにここで共有することはできません)、そして私は私の要求に何らかの形で正しいクレデンシャルを与えていないようです。
ここでは、Python urllib2、基本HTTP認証、およびtr.im(username, password)
を文字列としてのクレデンシャル( "myUsername"、 "myPassword")に置き換える方法を使用しました。
print result.read()
空白行を取得すると、次のprint result.headers()
ようになります。
<addinfourl at 40895752L whose fp = <socket._fileobject object at 0x00000000026757C8>>
例として、呼び出しの予想されるすべてのインスタンスについて、これはある種のファイルオブジェクトがあることを意味すると思います...
print result.info()
ヘッダーが戻ってくるかどうかを確認しようとしましたが、一連のヘッダーが表示されます。
REDACTED
Date: Mon, 01 Oct 2012 10:06:24 GMT
Server: Apache/2.2.3 (Red Hat)
X-Powered-By: PHP/5.1.6
Set-Cookie: OJSSID=mc7u47e674jmpjgk3kspfgc9l3; path=/
Refresh: 0; url=http:REDACTED loginMessage=reader.subscriptionRequiredLoginText
Content-Length: 0
Connection: close
Content-Type: text/html; charset=UTF-8
したがって、「loginMessage = reader.subscriptionRequiredLoginText」から、資格情報を適切に送信していないことを確認できます。
ポインタはありますか?
呼び出しコードは次のとおりです。
def getArticle(newLink):
request = urllib2.Request(newLink)
base64string = base64.encodestring('%s:%s' % ("myUsername", "myPassword")).replace('\n', '')
request.add_header("Authorization", "Basic %s" % base64string)
result = urllib2.urlopen(request)
print result.read()
URLの例は次のとおりです。編集済み-私のウェブサイトではありません!