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

python beautifulsoup user-warning

48689 просмотра

3 ответа

239 Репутация автора

После того, как я установил 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")

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

Автор: jellyfishhuang Источник Размещён: 04.11.2015 12:13

Ответы (3)


77 плюса

1895 Репутация автора

Решение

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

BeautifulSoup( ... )

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

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

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

Автор: Ethan Bierlein Размещён: 04.11.2015 12:14

13 плюса

3545 Репутация автора

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

BeautifulSoup(html, "lxml")

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

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

  • На Ubuntu (Debian)

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

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

    pip install lxml
    
Автор: Gayan Weerakutti Размещён: 07.06.2016 10:46

3 плюса

1026 Репутация автора

Для парсера HTML вам нужно установить html5lib, запустите:

pip install html5lib

затем добавьте html5lib в метод BeautifulSoup:

htmlDoc = bs4.BeautifulSoup(req1.text, 'html5lib')
print(htmlDoc)
Автор: Wilson Wu Размещён: 06.09.2018 03:03
Вопросы из категории :
32x32