python版本回退_Python爬虫之BeautifulSoup解析之路

本文介绍了Python解析HTML的利器BeautifulSoup,包括其特点、安装、解析器选择和使用方法。BeautifulSoup提供了简单易用的API,支持Python标准库和第三方解析器如lxml、html5lib。通过遍历和搜索文档树,可以方便地提取所需内容。
摘要由CSDN通过智能技术生成

上一篇分享了正则表达式的使用,相信大家对正则也已经有了一定的了解。它可以针对任意字符串做任何的匹配并提取所需信息。

但是我们爬虫基本上解析的都是html或者xml结构的内容,而非任意字符串。正则表达式虽然很强大灵活,但是对于html这样结构复杂的来说,写pattern的工作量会大大增加,并且有任意一处出错都得不到匹配结果,比较麻烦。

本篇将介绍一款针对html和xml结构,操作简单并容易上手的解析利器—BeautifulSoup。

format,png

BeautifulSoup的介绍

第一次使用BeautifulSoup的时候就在想:这个名字有什么含义吗?美味的汤?于是好信也在网上查了一下。

来看,官方文档是这么解释的:

BeautifulSoup: We called him Tortoise because he taught us”

意思是我们叫他乌龟因为他教了我们,当然这里Tortoise是Taught us的谐音。BeautifulSoup这个词来自于《爱丽丝漫游仙境》,意思是“甲鱼汤”。上面那个官方配图也是来自于《爱丽丝漫游仙境》,看来是没跑了,估计是作者可能很喜欢这部小说吧,因而由此起了这个名字。

好,让我们看看真正的BeautifulSoup是什么?

BeautifulSoup是Python语言中的模块,专门用于解析html/xml,非常适合像爬虫这样的项目。它有如下几个使其强大的特点:

它提供了几个超级简单的方法和Pythonic的语句来实现强大的导航、搜索、修改解析树的功能。

它会自动把将要处理的文档转化为Unicode编码,并输出为utf-8的编码,不需要你再考虑编码的问题。

支持Python标准库中的HTML解析器,还支持第三方的模块,如 lxml解析器 。

BeautifulSoup的安装

目前BeautifulSoup的最新发型版本是BeautifulSoup4,在Python中以bs4模块引入。

博主使用的Python3.x,可以使用 pip3 install bs4 来进行安装,也可以通过官方网站下载来安装,链接:https://www.crummy.com/software/BeautifulSoup/,具体安装步骤不在此叙述了。

以为安装完了吗?还没有呢。

上面介绍BeautifulSoup的特点时说到了,BeautifulSoup支持Python标准库的解析器html5lib,纯Python实现的。除此之外,BeautifulSoup还支持lxml解析器,为了能达到更好的解析效果,建议将这两个解析器也一并安装上。

根据操作系统不同,可以选择下列方法来安装lxml:

$ apt-get install Python-lxml

$ easy_install lxml

$ pip install lxml

另一个可供选择的解析器是纯Python实现的 html5lib , html5lib的解析方式与浏览器相同,可以选择下列方法来安装html5lib:

$ apt-get install Python-html5lib

$ easy_install html5lib

$ pip install html5lib

下面列出上面提到解析器的使用方法。

解析器使用方法

Python标准库BeautifulSoup(markup, "html.parser")

lxml HTML解析器BeautifulSoup(markup, "lxml")

lxml HTML解析器BeautifulSoup(markup, ["lxml",   "xml"])

BeautifulSoup(markup, "xml")

html5libBeautifulSoup(markup, "html5lib")

推荐使用lxml作为解析器,lxml是用C语言库来实现的,因此效率更高。在Python2.7.3之前的版本和Python3中3.2.2之前的版本,必须安装lxml或html5lib, 因为那些Python版本的标准库中内置的HTML解析方法不够稳定。

BeautifulSoup的文档对象创建

首先引入bs4库,也就是BeautifulSoup在Python中的模块。

from bs4 import BeautifulSoup

好了,我们来看一下官方提供的例子,这段例子引自《爱丽丝漫游记》。

html_doc ="""

The Dormouse's story

The Dormouse's story

Once upon a time there were three little sisters; and their names were

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值