Я должен использовать beautifulsoup, но я не знаю, какой парсер я должен принять. Я колеблюсь между lxml и html.parser, или почему бы и нет. Как узнать, соответствует ли веб-страница lxml? Как узнать, совместим ли веб-страница с парсером html? Большое спасибоpython beautifulsoup: lxml html.parser
ответ
Нет серебряной пули. Different HTML parsers behave differently, и вы должны выбрать тот, который работает на вашей конкретной странице. Работы в этом случае в основном означают, что вы можете получить нужные вам данные.
lxml
парсер, как правило, быстрее, html5lib
является самым мягким - такая разница была бы уместна, если у вас сломанный или не-правильно сформированный HTML для синтаксического анализа. html.parser
встроен и может помочь избежать дополнительных зависимостей, если это проблема. Вот related table, в котором подчеркиваются различия.
Итак, чтобы получить все ссылки, я должен использовать несколько методов, несколько парсеров? – Anonymus
@Anonymus nope, обычно вы просто выбираете парсер и придерживаетесь его. Но я могу представить, что страница не была хорошо сформирована, а синтаксический анализ ее с разными синтаксическими анализаторами мог получить более крупную картину, чем с одной. Хотя, я еще не был в такой ситуации. Благодарю. – alecxe
«Как узнать, соответствует ли веб-страница lxml?» http://lxml.de/validation.html – Dziugas