BeautifulSoup库的使用
使用from bs4 import BeautifulSoup来导入库
soup = BeautifulSoup(‘HTML内容’,‘html.parser(解析器)’)解析选中的html内容
soup.tag以获取对应tag标签的内容(存在多个只返回第一个)
tag.attrs返回一个字典,显示标签对应属性
soup.tag.string返回tag标签中间的内容(NavigableString类型)(也可返回其间的注释部分)
.prettify() 可对内容中每个标签后加入换行符,使文本打印出来更加整洁
.find_all(name,attrs,recursive,string,kwargs) 返回一个列表存储查找结果,可以简写为tag()或soup()
.find()的扩展方法单数只返回一个结果,eg.find_parent()只返回父辈节点的一个结果,find_parents()返回一个列表
解析器
html.parser:bs4的HTML解析器
lxml:lxml的HTML解析器
xml:lxml的XML解析器
html5lib:html5lib的解析器
标签树的遍历
节点中会出现 \n 或 NavigableString类型
tag.contents:返回列表,包含tag所有儿子节点(其中’\n’也算一个节点)
tag.children:用于循环遍历子节点
tag.descendants:循环遍历子孙节点
tag.parent:返回节点父标签
tag.parents:循环遍历先辈节点
tag.next_sibling:返回按照HTML文本顺序的下一个平行节点标签
tag.previous_sibling:返回按照HTML文本顺序的上一个平行节点标签
tag.next_siblings:迭代类型,返回按照HTML文本顺序的后续所有平行节点标签
tag.previous_siblings:迭代类型,返回按照HTML文本顺序的前续所有平行节点标签