标签树的下行遍历
.contents(内容) 子节点的列表,将<tag>所有的儿子节点存入列表
.childern(孩子) 子节点的迭代类型,与.contents类似,用于循环遍历儿子节点
.descendants (后裔)子孙节点的迭代类型,包含所有子孙节点,用于循环遍历
from bs4 import BeautifulSoup
import requests
try:
r=requests.get("http://python123.io/ws/demo.html",timeout=30)
r.raise_for_status()
r.encoding=r.apparent_encoding
demo=r.text
soup=BeautifulSoup(demo,'html.parser')
print('head标签',soup.head)#<head><title>This is a python demo page</title></head>
#head内容
print('head标签的内容',soup.head.contents)
print('body标签的内容',soup.body.contents)
#遍历子节点
for child in soup.body.children:
print(child)
#遍历子孙节点
for descendants in soup.body.descendants:
print('子孙节点',descendants)
except:
print("有点问题")标签树的上行遍历:
.parent 节点的父亲标签
.parents 节点先辈标签的迭代类型,用于循环遍历先辈节点
from bs4 import BeautifulSoup
import requests
try:
#接收响应
r=requests.get("http://python123.io/ws/demo.html",timeout=30)
#异常
r.raise_for_status()
#编码
r.encoding=r.apparent_encoding
#接收返回的html 用BeautifulSoup 进行处理
demo=r.text
soup=BeautifulSoup(demo,'html.parser')
print(soup)
#打印 标签树的上行遍历
for parent in soup.a.parents:
if parent is None :
print(parent)
else:
print('a',parent.name)
except:
print('异常')标签树的平行遍历(平行遍历发生在同一节点下):
.next_sibling 返回按照html文本顺序的下一个平行节点标签
.previous_sibling 返回按照HTML文本顺序的上一个平行节点标签
.next_siblings 迭代类型,返回按照HTML 文本顺序的后续所有平行节点标签
.previous_siblings 迭代类型,返回按照HTML文本顺序的前续所有平行节点标签
本文介绍了使用BeautifulSoup库对HTML文档中的标签树进行遍历的方法,包括子节点、子孙节点及平行节点的遍历,并提供了详细的代码示例。
534

被折叠的 条评论
为什么被折叠?



