Python 爬虫从入门到进阶之路(十二)

之前的文章我们介绍了 re 模块和 lxml 模块来做爬虫,本章我们再来看一个 bs4 模块来做爬虫。

和 lxml 一样,Beautiful Soup 也是一个HTML/XML的解析器,主要的功能也是如何解析和提取 HTML/XML 数据。

lxml 只会局部遍历,而Beautiful Soup 是基于HTML DOM的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml。

BeautifulSoup 用来解析 HTML 比较简单,API非常人性化,支持CSS选择器、Python标准库中的HTML解析器,也支持 lxml 的 XML解析器。

Beautiful Soup 3 目前已经停止开发,推荐现在的项目使用Beautiful Soup 4。使用 pip 安装即可:pip install beautifulsoup4

官方文档:

抓取工具 速度 使用难度 安装难度
正则   最快   困难   无(内置)  
BeautifulSoup     最简单   简单  
lxml     简单   一般  

首先必须要导入 bs4 库

1 from bs4 import BeautifulSoup 2 3 html = """ 4 <div> 5 <ul> 6 <li><a href="http://www.likecs.com/link1.html">first item</a></li> 7 <li><a href="http://www.likecs.com/link2.html">second item</a></li> 8 <li><a href="http://www.likecs.com/link3.html"><span>third item</span></a></li> 9 <li><a href="http://www.likecs.com/link4.html">fourth item</a></li> 10 <li><a href="http://www.likecs.com/link5.html">fifth item</a></li> 11 </ul> 12 </div> 13 """ 14 15 # 创建 Beautiful Soup 对象 16 soup = BeautifulSoup(html, "lxml") 17 18 # 打开本地 HTML 文件的方式来创建对象 19 # soup = BeautifulSoup(open('index.html'), "lxml") 20 21 # 格式化输出 soup 对象的内容 22 print(soup.prettify())

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wpfjxf.html