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, как написано сверху.