树形结构采用标签的形式来组织,但是标签之间的NavigableString也构成了标签之间的节点。所以任何一个节点的平行/父/子标签可能存在NavigableString类型
1.下行遍历
import requests
from bs4 import BeautifulSoup
r = requests.get('https://python123.io/ws/demo.html')
demo = r.text
# 提供demo和解析器
soup = BeautifulSoup(demo, 'html.parser')
print(soup)
print('\n-----------------------------')
for i in soup.body.descendants:
print('分界线')
print(f'{i}\n')
- .contents返回列表类型,children和descendants返回迭代类型
- descendants包含每一个children
2.上行遍历
可以用.parent.parent
3.平行遍历
只能遍历同一父标签下的平行标签,注意不包括平行标签的下行标签
4.prettify()方法
该方法给标签添加换行符,让标签展现的更直观
soup.prettify()
soup.a.prettify()