Разбор HTML с Python 2.7 - HTMLParser, SGMLParser или Beautiful Soup? - PullRequest
16 голосов
/ 27 июня 2011

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

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

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

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

Ответы [ 4 ]

14 голосов
/ 27 июня 2011

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

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

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

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

6 голосов
/ 27 июня 2011

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

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

1 голос
/ 11 ноября 2013

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

0 голосов
/ 27 июня 2011

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

Пойдите с BeautifulSoup (4).

...