Ответ 1
В соответствии с Задание страницы анализатора:
Первый аргумент конструктора BeautifulSoup - это строка или открыть дескриптор файла - разметку, которую вы хотите разобрать. Второй аргумент заключается в том, как youd, как разрисованная разметка.
Если вы ничего не укажете, вы получите лучший парсер HTML, который установлен. Beautiful Soup оценивает lxmls parser как лучший, затем html5libs, затем встроенный парсер Pythons.
Другими словами, просто установка lxml
в ту же среду python делает его парсером по умолчанию.
Хотя обратите внимание, что явное определение парсера считается передовым методом. Существуют различия между парсерами, что может привести к тонким ошибкам, которые трудно отлаживать, если вы позволяете BeautifulSoup
самому выбирать лучший парсер. Вы также должны помнить, что вам нужно установить lxml
. И, если бы вы не установили его, вы даже не заметили бы этого - BeautifulSoup
просто получит следующий доступный парсер без каких-либо ошибок.
Если вы все еще не хотите явно указывать синтаксический анализатор, по крайней мере, сделайте заметку для будущего самостоятельно или других пользователей, которые будут использовать код, который вы написали в проекте README/documentation, и список lxml
в вашем проекте требований наряду с beautifulsoup4
.
Кроме того: Явный лучше, чем неявный.