2015-06-20 6 views
0

Привет, я получаю вышеуказанную ошибку. Почему это всплывает, что мне не хватает и как мне обойти его? СпасибоAttributeError: объект HTTPResponse не имеет атрибута 'replace'

try: 
    import urllib.request as urllib2 
except ImportError: 
    import urllib2 

from html2text import html2text 

sock = html2text(urllib2.urlopen('http://www.example.com')) 
htmlSource = sock.read()        
sock.close()           
print (htmlSource) 

Im running IDLE 3.4.3 на ОС Windows 7.

+0

Теперь я получаю: TypeError: 'ул' не поддерживает интерфейс буфера – user3115713

ответ

2

html2text ожидает HTML-код, передаваемый в в виде строки - прочитать ответ:

source = urllib2.urlopen('http://www.example.com').read() 
text = html2text(source) 
print(text) 

Он печатает:

# Example Domain 

This domain is established to be used for illustrative examples in documents. 
You may use this domain in examples without prior coordination or asking for 
permission. 

[More information...](http://www.iana.org/domains/example) 
+0

я вижу. Благодарю . – user3115713

+0

@ user3115713, пожалуйста, просмотрите этот и предыдущие вопросы, которые вы задали, и посмотрите, есть ли ответы, которые необходимо или должны быть приняты. Благодаря! – alecxe

0

Заменить это атрибут для строк и у вас есть объект файла

obj=urllib2.urlopen('http://www.example.com') 
print obj 

.

<addinfourl at 3066852812L whose fp = <socket._fileobject object at 0xb6d267ec>> 

Это все в порядке.

#!/usr/bin/python 

try: 
    import urllib.request as urllib2 
except ImportError: 
    import urllib2 

from html2text import html2text 


source=urllib2.urlopen('http://www.example.com').read() 
s=html2text(source) 

print s 

Выход

This domain is established to be used for illustrative examples in documents. 
You may use this domain in examples without prior coordination or asking for 
permission. 

[More information...](http://www.iana.org/domains/example 
+0

все еще получает данные = data.replace ("", "") "TypeError: 'str' не поддерживает интерфейс буфера" – user3115713

+0

Это странно. Я не. –

+0

Какую версию python вы используете, когда Im запускает 3.x с IDLE в ОС Windows 7. ? – user3115713

0

Я думаю, что я нашел решение для Python 3.4. Я просто расшифровал источник в UTF-8, и он сработал.

#!/usr/bin/python 

try: 
    import urllib.request as urllib2 
except ImportError: 
    import urllib2 

from html2text import html2text 

source=urllib2.urlopen('http://www.example.com').read() 
s=html2text(source.decode("UTF-8")) 

print (s) 

Выход

# Example Domain 

This domain is established to be used for illustrative examples in documents. 
You may use this domain in examples without prior coordination or asking for 
permission. 

[More information...](http://www.iana.org/domains/example) 
+0

Спасибо, что работает сейчас. Я понял, что python 3.x, похоже, имеет собственный собственный мир. Для решения почему его нужно было декодировать до utf-8 и как вы пришли к такому подходу. благодаря – user3115713