2013-09-24 3 views
0

Я работаю на работе, и мне нужно разобрать сайт с помощью Beautiful Soup. Сайт http://www.manta.com, но когда я пытаюсь увидеть кодировку сайта в метакоде HTML-кода, ничего не отображается. Я пытаюсь разобрать HTML локально, с веб-страницы, загруженном, но у меня возникают проблемы с некоторыми ошибками декодирования:Ошибка декодирования Beautiful Soup

# manta web page downloaded before 
html = open('1.html', 'r') 
soup = BeautifulSoup(html, 'lxml') 

Это производит следующую трассировку стека:

Traceback (most recent call last): 
    File "E:/Projects/Python/webkit/sample.py", line 10, in <module> 
    soup = BeautifulSoup(html, 'lxml') 
    File "C:\Python27\lib\site-packages\bs4\__init__.py", line 172, in __init__ 
    self._feed() 
    File "C:\Python27\lib\site-packages\bs4\__init__.py", line 185, in _feed 
    self.builder.feed(self.markup) 
    File "C:\Python27\lib\site-packages\bs4\builder\_lxml.py", line 195, in feed 
    self.parser.close() 
    File "parser.pxi", line 1209, in 
    lxml.etree._FeedParser.close(src\lxm\lxml.etree.c:90717) 
    File "parsertarget.pxi", line 142, in 
    lxml.etree._TargetParserContext._handleParseResult (src\lxml\lxml.etree.c:100104) 
    File "parsertarget.pxi", line 130, in 
    lxml.etree._TargetParserContext._handleParseResult (src\lxml\lxml.etree.c:99927) 
    File "lxml.etree.pyx", line 294, in lxml.etree._ExceptionContext._raise_if_stored 
    (src\lxml\lxml.etree.c:9387) 
    File "saxparser.pxi", line 259, in lxml.etree._handleSaxData (src\lxml 
    \lxml.etree.c:96065) 
UnicodeDecodeError: 'utf8' codec can't decode bytes in position 105-106: invalid data 

Я m попытайтесь ввести кодировку в конструкторе Beautiful Soup:

soup = BeautifulSoup(html, 'lxml', from_encoding= "some encoding") 

И я продолжаю получать ту же ошибку.

Интересно, что если я загружаю страницу в свой браузер, а затем меняю кодировку на utf-8, например, в Firefox и сохраняю ее. Эта работа хорошая. Любая помощь очень ценится. Спасибо.

+0

Я не могу открыть www.manta.com Является ли URL правильно? – justhalf

+0

Попробуйте следующее: [link] (http://www.manta.com/mb_43_A0_19/advertising_marketing/louisiana?pg=2) это одна из страниц, которую я хочу разобрать –

+0

Я не могу открыть ее здесь. Это только для США? (btw, как сделать гиперссылку в комментарии?) – justhalf

ответ

1

Encode строка в UTF-8

soup = BeautifulSoup(html.encode('UTF-8'),'lxml') 
+0

Я попытался и получил в процессе кодирования еще одну ошибку с кодировкой –

+0

Какая ошибка вы видели? – justhalf

+0

Когда я помещаю все строки файла в строку, и я пытаюсь выполнить _ht = _ht.encode ('utf-8'), я получаю: Traceback (последний последний вызов): Файл «E:/Projects/Python/webkit/sample.py ", строка 15, в _ht = _ht.encode ('utf-8') UnicodeDecodeError: кодек 'utf8' не может декодировать байт 0xbb в позиции 152380: неожиданный байтовый код –