BeautifulSoup简介
介绍
lxml 只会局部遍历,而Beautiful Soup 是基于HTML DOM的,会载入整个文档,解析整个DOM树,因此时间和内存开销都会大很多,所以性能要低于lxml。
BeautifulSoup 用来解析 HTML 比较简单,API非常人性化,支持CSS选择器、Python标准库中的HTML解析器,也支持 lxml 的 XML解析器。
使用 pip 安装即可:pip install beautifulsoup4
bs四大对象
Beautiful Soup将复杂HTML文档转换成一个复杂的树形结构,每个节点都是Python对象,所有对象可以归纳为4种:
- Tag
- NavigableString
- BeautifulSoup
- Comment
-
Tag
Tag对应 HTML 中的一个个标签
Tag,它有两个重要的属性,是 name 和 attrs
name是标签名,attrs是标签的属性
注意:BeautifulSoup直接调用Tag,只会获得Html中第一个相应的Tag数据 -
NavigableString
标签中的内容数据
使用string属性获取该对象,例如:soup.p.string 获得bs中p标签的内容 -
BeautifulSoup
BeautifulSoup 对象表示的是一个文档的内容。大部分时候,可以把它当作 Tag 对象,是一个特殊的 Tag,与Tag有相同的 name,attrs属性 -
Comment
Comment 对象是一个特殊类型的 NavigableString 对象,其输出的内容不包括注释符号。
实际就是如过内容中有注释符号,soup.p.st