如何摆脱BeautifulSoup用户警告?

问题描述 投票:37回答:3

安装BeautifulSoup之后,每当我在cmd中运行我的Python时,就会出现这个警告。

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")

我没有理解为什么它出来以及如何解决它。

python beautifulsoup user-warning
3个回答
70
投票

错误消息中明确说明了您的问题的解决方案。像下面这样的代码没有指定XML / HTML / etc.解析器。

BeautifulSoup( ... )

为了修复错误,您需要指定要使用的解析器,如下所示:

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

如果您愿意,也可以安装第三方解析器。


12
投票

文档建议您安装和使用lxml以提高速度。

BeautifulSoup(html, "lxml")

如果您使用的是早于2.7.3的Python 2版本,或者早于3.2.2的Python 3版本,则必须安装lxml或html5lib-Python的内置HTML解析器在旧版本中不是很好版本。

安装LXML解析器

  • 在Ubuntu(debian) apt-get install python-lxml
  • Fedora(基于RHEL) dnf install python-lxml
  • 使用PIP pip install lxml

1
投票

对于HTML解析器,您需要安装html5lib,运行:

pip install html5lib

然后在BeautifulSoup方法中添加html5lib:

htmlDoc = bs4.BeautifulSoup(req1.text, 'html5lib')
print(htmlDoc)
© www.soinside.com 2019 - 2024. All rights reserved.