Подтвердить что ты не робот

Как избавиться от предупреждения пользователя BeautifulSoup?

После того, как я установил BeautifulSoup, всякий раз, когда я запускаю свой Python в cmd, это предупреждение появляется.

D:\Application\python\lib\site-packages\beautifulsoup4-4.4.1-py3.4.egg\bs4\__init__.py:166:
UserWarning: No parser was explicitly specified, so I'm using the best
available HTML parser for this system ("html.parser"). This usually isn't a
problem, but if you run this code on another system, or in a different
virtual environment, it may use a different parser and behave differently.

To get rid of this warning, change this:

 BeautifulSoup([your markup])

to this:

 BeautifulSoup([your markup], "html.parser")

У меня нет идеального решения, почему оно выходит и как его решить.

4b9b3361

Ответ 1

Решение вашей проблемы четко указано в сообщении об ошибке. Код, подобный приведенному ниже, не указывает XML/HTML/и т.д. синтаксический анализатор.

BeautifulSoup( ... )

Чтобы исправить ошибку, вам нужно указать, какой парсер вы хотите использовать, например:

BeautifulSoup( ..., "html.parser" )

Вы также можете установить сторонний парсер, если хотите.

Ответ 2

Документация рекомендует установить и использовать lxml для скорости.

BeautifulSoup(html, "lxml")

Если вы используете версию Python 2 раньше 2.7.3 или версию Python 3 раньше 3.2.2, важно, чтобы вы установили lxml или html5lib-Pythons встроенный HTML-парсер просто не очень хорош в более старые версии.

Установка парсера LXML

  • В Ubuntu (debian)

    apt-get install python-lxml 
    
  • Fedora (на основе RHEL)

    dnf install python-lxml
    
  • Использование PIP

    pip install lxml