标签树的三种遍历
一、標簽樹的下行遍歷
| 屬性 | 說明 |
| .contents | 子節點的列表,將<tag>所有兒子節點存入列表中(只能獲取下一級兒子節點) |
| .children | 子節點的迭代類型,與.contents類似,用于循環遍歷兒子節點 |
| .descendants | 子孫節點的迭代類型,包含所有子孫結點,用于循環遍歷(可以獲取所有子節點) |
?
?
?
?
?
?
1 #這里使用前一篇文章的demo這鍋湯 2 print(soup.head)#打印head標簽 3 print(soup.body.contents)#打印body標簽的下一級標簽 4 print(len(soup.body.contents))#打印body標簽的下一級標簽的個數 1 for child in soup.body.contents: 2 print(child)#循環遍歷兒子節點 3 4 for child in soup.body.contents: 5 print(child)#循環遍歷子孫節點?
?
二、標簽樹的上行遍歷
| 屬性 | 說明 |
| .parent | 節點的父親標簽 |
| .parents | 節點先輩標簽的迭代類型,用于循環遍歷先輩節點 |
?
?
?
?
1 #依舊使用demo和soup這鍋湯 2 #demo = r.text 3 #soup = BeautifulSoup(demo,"html.parser") 4 5 print(soup.title.paret)#打印title的父親標簽 6 print(soup.html.parent)#由于html標簽是最高級的標簽,它的父親是它自己 7 8 #循環上行遍歷標簽樹: 9 for parent in soup.a.parents: 10 if parent is None: 11 print(parent) 12 else: 13 print(parent.name)?
?
三、標簽樹的平行遍歷
| 屬性 | 說明 |
| .next_sibling | 返回按照HTML文本順序的下一個平行節點標簽 |
| .previos_sibling | 返回按照HTML文本順序的上一個平行節點標簽 |
| .next_siblings | 迭代類型,返回按照HTML文本順序的后續所有平行節點標簽 |
| .previous_siblings | 迭代類型,返回按照HTML文本順序的前續所有平行節點標簽 |
?
?
?
?
?
?
?
?
注意:這個只能發生在父節點相同的標簽遍歷
1 print(soup.a.next_sibling)#平行節點的后一個兄弟標簽 2 print(soup.a.previous_sibling)#平行節點的前一個兄弟標簽 3 4 for sibling in soup.a.next_siblings: 5 print(sibling)#循環遍歷后續節點 6 7 for sibling in soup.a.previous_siblings: 8 print(sibling)#循環遍歷前續節點?
轉載于:https://www.cnblogs.com/BASE64/p/10288475.html
總結
- 上一篇: fido密匙是什么?
- 下一篇: 农合异地就医怎么备案?