Beautifulsoup介绍
HTML 文档本身是结构化的文本,有一定的规则,通过它的结构可以简化信息提取。于是,就有了lxml、pyquery、BeautifulSoup等网页信息提取库。一般我们会用这些库来提取网页信息。其中,lxml 有很高的解析效率,支持 xPath 语法(一种可以在 HTML 中查找信息的规则语法);pyquery 得名于 jQuery(知名的前端 js 库),可以用类似 jQuery 的语法解析网页。
bs 最大的特点我觉得是简单易用,不像正则和 xPath 需要刻意去记住很多特定语法,尽管那样会效率更高更直接。对大多数 python 使用者来说,好用会比高效更重要。这也是我自己使用并推荐 bs 的主要原因。
安装Python库
需要注意的是,当你在Python3上进行安装的时候,如果仅写beautifulsoup会报错,该库已经更新到4.x版本,所以使用如下命令进行安装即可。
text
14 复制
1sudo pip3 install beautifulsoup4
注意事项
如果尝试安装未指定版本号的旧版本库,将会报出以下错误:
text
13 复制
1
2
3
4
5
6
7
8
9
10
11
12ERROR: Command errored out with exit status 1:
command: /usr/bin/python3 -c 'import sys, setuptools, tokenize; sys.argv[0] = '"'"'/tmp/pip-install-k2bz1jqv/beautifulsoup/setup.py'"'"'; __file__='"'"'/tmp/pip-install-k2bz1jqv/beautifulsoup/setup.py'"'"';f=getattr(tokenize, '"'"'open'"'"', open)(__file__);code=f.read().replace('"'"'\r\n'"'"', '"'"'\n'"'"');f.close();exec(compile(code, __file__, '"'"'exec'"'"'))' egg_info --egg-base /tmp/pip-install-k2bz1jqv/beautifulsoup/pip-egg-info
cwd: /tmp/pip-install-k2bz1jqv/beautifulsoup/
Complete output (6 lines):
Traceback (most recent call last):
File "", line 1, in
File "/tmp/pip-install-k2bz1jqv/beautifulsoup/setup.py", line 3
"You're trying to run a very old release of Beautiful Soup under Python 3. This will not work."<>"Please use Beautiful Soup 4, available through the pip package 'beautifulsoup4'."
^
SyntaxError: invalid syntax
----------------------------------------
ERROR: Command errored out with exit status 1: python setup.py egg_info Check the logs for full command output.