安装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")
我没有理解为什么它出来以及如何解决它。
错误消息中明确说明了您的问题的解决方案。像下面这样的代码没有指定XML / HTML / etc.解析器。
BeautifulSoup( ... )
为了修复错误,您需要指定要使用的解析器,如下所示:
BeautifulSoup( ..., "html.parser" )
如果您愿意,也可以安装第三方解析器。
文档建议您安装和使用lxml以提高速度。
BeautifulSoup(html, "lxml")
如果您使用的是早于2.7.3的Python 2版本,或者早于3.2.2的Python 3版本,则必须安装lxml或html5lib-Python的内置HTML解析器在旧版本中不是很好版本。
安装LXML解析器
apt-get install python-lxml
dnf install python-lxml
pip install lxml
对于HTML解析器,您需要安装html5lib,运行:
pip install html5lib
然后在BeautifulSoup方法中添加html5lib:
htmlDoc = bs4.BeautifulSoup(req1.text, 'html5lib')
print(htmlDoc)