Анализ HTML с помощью Python 2.7 - HTMLParser, SGMLParser или Beautiful Soup?

Я хочу сделать скриншоты с помощью Python 2.7, и у меня нет контекста различий между HTMLParser, SGMLParser или Beautiful Soup.

Все ли они пытаются решить ту же проблему или существуют они по разным причинам? Самый простой, наиболее надежный и который (если есть) является выбором по умолчанию?

Также, пожалуйста, дайте мне знать, если я упустил важный вариант.

Изменить: Я должен упомянуть, что я не особенно разбираюсь в разборе HTML, и меня особенно интересует, что заставит меня двигаться быстрее, с целью разбора HTML на одном конкретном сайт.

Ответы

Ответ 1

Я использую и рекомендую lxml и pyquery для разбора HTML. Мне приходилось писать ботовую программу для веб-поиска несколько месяцев назад и всех популярных альтернатив, которые я пробовал, включая HTMLParser и BeautifulSoup. Я пошел с lxml и синтаксический сахар pyquery. Я не пробовал SGMLParser, хотя.

Для того, что я видел, lxml является более или менее самой многофункциональной библиотекой, а ее базовое ядро ​​C является довольно эффективным по сравнению с его альтернативами. Что касается pyquery, мне очень понравился его синтаксис, вдохновленный jQuery, который делает навигацию по DOM более приятной.

Вот некоторые ресурсы, которые могут оказаться полезными, если вы решите попробовать:

Хорошо, что мой 2c:) Надеюсь, это поможет.

Ответ 2

BeautifulSoup, в частности, предназначен для грязного HTML, найденного в дикой природе. Он будет разбирать любую старую вещь, но медленно.

В наши дни очень популярным выбором является lxml.html, который работает быстро, и при необходимости можно использовать BeautifulSoup.

Ответ 3

Взгляните на Scrapy. Это фреймворк python, специально предназначенный для утилизации. Это позволяет легко извлекать информацию с помощью XPath. Он также имеет некоторые очень интересные возможности, такие как определение моделей для скремблированных данных (возможность экспорта в разных форматах), аутентификация и рекурсивные ссылки.

Ответ 4

Ну, программное обеспечение похоже на автомобили.... разные вкусы обо всех делаю!

Перейдите с помощью BeautifulSoup (4).