总结
1.模块介绍
-
Beautiful Soup 是一个可以从HTML或XML文件中提取数据的Python库,简单来说,它能将HTML的标签文件解析成树形结构,然后方便地获取到指定标签的对应属性, 还可以方便的实现全站点的内容爬取和解析;
-
使用Beautiful Soup解析HTML文档需要安装的模块beautifulsoup4、html5lib、lxml;
-
html5lib是一个用于解析HTML的纯python库, lxml是python的一个解析库,支持HTML和XML的解析;
2.模块使用
- 首先需要导入BeautifulSoup模块,再实例化BeautifulSoup对象,然后通过BeautifulSoup提供的方法拿到HTML的元素、属性、链接、文本等;
3.BeautifulSoup对象
-
BeautifulSoup对象分为四类,分别是
Tag
,NavigableString
,BeautifulSoup
,Comment
; -
prettify()方法
:可以将Beautiful Soup的文档树格式化后以Unicode编码输出,每个XML/HTML标签都独占一行; -
soup.标签名
:获取HTML中的标签; -
soup.标签名.name
:获取HTML中标签的名称; -
soup.标签名.string
:获取HTML中标签的文本内容; -
soup.标签名.parent
:获取HTML中标签的父标签;
4.遍历文档
-
contents
:获取所有子节点,返回一个列表,可以通过下标取值; -
children
:返回子节点的生成器对象; -
soup.strings
:获取所有节点的内容,包括空格; -
soup.stripped_strings
:获取所有节点的内容,不包括空格;
5.查找标签
-
find_all()
:查找所有指定标签名称的子节点(可同时查找多个标签),并判断是否符合过滤器的条件,返回一个列表; -
find()
:和find_all()差不多,但是find_all() 方法的返回结果是值包含一个元素的列表,而 find() 方法直接返回结果; -
更多可以查看:https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html