HTML-парсер в Python

Используя документацию Python, я нашел анализатор HTML, но я понятия не имею, какую библиотеку импортировать, чтобы использовать его, как мне это выяснить (имея в виду, что это не сказано на странице).

8 ответов

Решение

Пытаться:

import HTMLParser

В Python 3.0 модуль HTMLParser был переименован в html.parser, вы можете проверить это здесь

Python 3.0

import html.parser

Python 2.2 и выше

import HTMLParser

Вы, вероятно, действительно хотите BeautifulSoup, проверьте ссылку для примера.

Но в любом случае

>>> import HTMLParser
>>> h = HTMLParser.HTMLParser()
>>> h.feed('<html></html>')
>>> h.get_starttag_text()
'<html>'
>>> h.close()

Вам также следует взглянуть на html5lib для Python, так как он пытается проанализировать HTML таким образом, который очень напоминает то, что делают веб-браузеры, особенно при работе с недопустимым HTML (что составляет более 90% современного Интернета).

Я бы рекомендовал использовать модуль Beautiful Soup, и он имеет хорошую документацию.

Вы можете быть заинтересованы в lxml. Это отдельный пакет с компонентами C, но он самый быстрый. Он также имеет очень хороший API, позволяющий вам легко перечислять ссылки в документах HTML или списках форм, очищать HTML и многое другое. У него также есть возможность разбирать некорректно сформированный HTML (он настраивается).

Я не рекомендую BeautifulSoup, если вы хотите скорость. lxml намного, намного быстрее, и вы можете использовать BS Soupparser в lxml, если парсер по умолчанию не работает.

Для реальной обработки HTML я бы порекомендовал BeautifulSoup. Это здорово и снимает большую часть боли. Установка проста.

Внизу есть ссылка на пример ( http://docs.python.org/2/library/htmlparser.html), он просто не работает с исходным python или python3. Это должен быть python2, как написано сверху.

Другие вопросы по тегам