BeautifulSoup也是一种解析工具,用于从HTML和XML文件中提取数据

1 安装

使用环境python3,python2已停止维护,尽量不用它。

如果python的安装中,对应的python.exe文件名为python3.exe,上述的命令中的python则用python3代替。 (bs4之前还有bs3,只不过停止开发了)

2 使用

我们使用该工具从网页的代码中爬取相关数据,下面是陶哲轩的博客Whats new的部分HTML代码。其中<h2> 标签对应的是文章标题,我们将提取网页中的<h2>标签中的文章标题。

针对上面的页面,我们只需要提取形如<h2 class="post-title" id="**">的标签即可,其中id是一个变量,对应的python代码如下:

另外如果要查看网页代码,除了上述的通过requests返回的结果,或浏览器中按F12,还可以在地址栏中输入view-source:url,便可直接显示网页的代码,url为对应的网址。

2.1 文档树

HTML代码中的各个标签都相当于树结构中的节点,大标签下包含着多个小标签,而在这里把它们看作父子关系。 仍然截取Whats new的部分HTML代码

此时<head>作为一个父节点,下面包含着<title>,<link>,<script>等子节点。获取对应节点的代码如下:

2.2 lxml模块

lxml与BeautifulSoup功能相似,lxml额外提供了xpath选择器方法,且速度更快一些

使用的重点在于熟悉xpath的语法,或者在网页使用F12后,在控制台中选中要搜索的目标右键,Copy中有Copy XPath选项。