2011-06-24 6 views
0

私はPython 2.7.1を実行していて、urllib2モジュールを使用していくつかのWebページにアクセスしようとしています。 Pythonドキュメント、urllib2.urlopen()あたり:urllib2.urlopen info()またはgeturl()メソッドを持たないオブジェクトを返す

This function returns a file-like object with two additional methods, geturl() and info()

しかし、それは私は、コードの最後のprint文でinfo()にアクセスしようとすると、そのような方法があるないことを示します。次のエラーが表示されます。

AttributeError: HTTPResponse instance has no attribute 'info' 

これはわかりません。私はGoogle上で何かを見つけることができず、ドキュメンテーションは、返されたオブジェクトと共にこれらのメソッドが存在することを明確に示しています。面白いことに、エラーを介して示され、メソッドのテストによって、HTTPresponseオブジェクトがそれぞれのメソッドで返されます。私は何が欠けていますか?次のように

私のコードは次のとおりです。

import urllib2 
import httplib, socket 
import cookielib 
import ntlm 
from ntlm import ntlm 

url = URLOFSOMESORT 
user = USERNAMEHERE 
password = PASSWORD 
user_agent = 'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)' 
data = "" 
headers = { 'User-Agent' : user_agent } 

passman = urllib2.HTTPPasswordMgrWithDefaultRealm() 
passman.add_password(None, url, user, password) 

cookie_jar = cookielib.CookieJar() 
cookie_handler = urllib2.HTTPCookieProcessor(cookie_jar) 
redirect = urllib2.HTTPRedirectHandler() 
auth_basic = urllib2.HTTPBasicAuthHandler(passman) 
auth_digest = urllib2.HTTPDigestAuthHandler(passman) 
auth_NTLM = HTTPNtlmAuthHandler(passman) 

opener = urllib2.build_opener(cookie_handler, auth_NTLM, auth_basic, auth_digest, redirect) 
urllib2.install_opener(opener) 
request = urllib2.Request(url, data, headers) 
response = urllib2.urlopen(request) 
#cookie_jar.extract_cookies(response, request) 

print response.info() 

答えて

1

問題は、あなたがinstall_openerHTTPNtlmAuthHandlerを受けていたという事実です。そのクラスがリクエストを処理するとき、標準の 'ファイルのようなオブジェクト'の代わりにHTTPResponseを返します。

ソースを確認するには、hereにアクセスしてください。

+0

Hrmmmmを読んでみただけです。ありがとう。グレ、これは悪臭を放つ。応答でクッキーを抽出しようとしています – Jay

関連する問題