BeautifulSoup 美味的汤
学习一时爽,一直学习一直爽!
Hello,大家好,我是Connor,一个从无到有的技术小白。上一次我们说到了 Xpath 的使用方法。Xpath 我觉得还是比较绕该怎么办呢???有没有更加简单易懂的方法呢?答案是肯定的,当然有更加简单易懂的方法了,那就是 BeautifulSoup 美味的汤。这个方法对于正则和 Xpath 来说更加的简单方便,更加易懂,能够节省我们大量的分析时间。
1.BeautifulSoup 的简介
BeautifulSoup是一个HTML数据提取库。几乎没有什么数据可以难住BeautifulSoup。只要是你可以获取的到的数据,那么你都可以通过BeautifulSoup简单快捷的进行数据提取。是一款非常适合新手入门使用的数据提取库。当然,作为一个HTML数据提取库,requests 都有了官方中文文档,那么 BeautifulSoup 当然也不能少啊,你可以访问 BeautifulSoup 的官方中文文档:点我走起 >>>
2.BeautifulSoup 的安装
既然我又来说到安装了,那就证明这个库和我们平常想的库不太一样,它具体的安装方法为:
pip install beautifulsoup4
注意,是beautifulsoup4,并不是beautifulsoup,虽然我们beautifulsoup的叫,但人家实际叫beautifulsoup4,一定要记清楚哈。
3.BeautifulSoup 的基础使用
安装完了,下面我们就正式开始使用,老规矩,我们先来一段html文档,然后逐一举例,来看BeautifulSoup如何使用:
首先我们来随意编写一段html代码:
html = """
Hello,Wrold"""
3.1 简单的使用
在进行内容提取之前,我们需要将获取的html内容转换成BeautifulSoup对象:
In [1]: from bs4 import BeautifulSoup
In [2]: soup = BeautifulSoup(html, "html5lib")
In [3]: type(soup)
Out[3]: bs4.BeautifulSoup
可以看的到,我们生成的对象是一个 bs4.BeautfulSoup 对象,我们所有的内容提取都基于这个对象。切记进行内容提取之前先生成 bs4.BeautifulSoup 对象。
3.2 解析器的使用
在上面的语句中,大家可以看到我们使用了一个 html5lib 这是一个解析器,在构造BeautifulSoup 对象的时候,需要用到解析器。BeautifulSoup 支持python自带的解析器和少数第三方解析器。详细对比如下:
解析器
使用方法
优势
劣势
Python标准库
BeautifulSoup(html,"html.parser")
Python的内置标准库。 执行速度适中。 文档容错能力强。
Python 3.2.2前的版本文档容错能力差
lxml HTML 解析器
BeautifulSoup(html, "lxml")
速度快文档容错能力强
需要安装C语言库
lxml XML 解析器
BeautifulSoup(html, ["lxml","xml"]) BeautifulSoup(html, "xml")
速度快 唯一支持XML的解析器
需要安装C语言库
html5lib
Beau