基於bs4庫的HTML標籤遍歷方法

2021-10-02 13:03:46 字數 3209 閱讀 1209

html可以看做一棵標籤樹

屬性說明

.contents

將該標籤所有的兒子節點存入列表

.children

子節點的迭代型別,和contents類似,用於遍歷兒子節點

.descendants

子孫節點的迭代型別,包含所有的子孫跌點,用於迴圈遍歷

import requests

from bs4 import beautifulsoup

r=requests.get('')

demo=r.text

soup=beautifulsoup(demo,'html.parser')

print(soup.contents)# 獲取整個標籤樹的兒子節點

print(soup.body.content)#返回標籤樹的body標籤下的節點

print(soup.head)#返回head標籤

print(len(soup.body.content))#輸出body標籤兒子節點的個數

print(soup.body.content[1])#獲取body下第乙個子標籤

遍歷子孫節點

import requests

from bs4 import beautifulsoup

r=requests.get('')

demo=r.text

soup=beautifulsoup(demo,'html.parser')

for child in soup.body.children:#遍歷兒子節點

print(child)

for child in soup.body.descendants:#遍歷子孫節點

print(child)

屬性

說明.parent

節點的父親標籤

.parents

節點的先輩標籤的迭代型別,用於迴圈遍歷先輩節點

import requests

from bs4 import beautifulsoup

r=requests.get('')

demo=r.text

soup=beautifulsoup(demo,'html.parser')

print(soup.title.parent)

print(soup.title.parent)

print(soup.parent)

import requests

from bs4 import beautifulsoup

r=requests.get('')

demo=r.text

soup=beautifulsoup(demo,'html.parser')

for parent in soup.a.parents:#遍歷先輩的資訊

if parent is none:

print(parent)

else:

print(parent.name)

屬性

說明.next_sibling

返回html文字順序的下乙個平行標籤

.previous_sibling

返回html文字順序的上乙個平行標籤

.next_siblings

迭代型別,返回html文字順序後續所有的平行標籤

.pervious_siblings

迭代型別,返回html文字順序前面所有的平行標籤

注意

標籤樹的平行遍歷是有條件的

平行遍歷發生在同乙個父親節點的各節點之間

標籤中的內容也構成了節點

print(soup.a.next_sibling)#a標籤的下乙個標籤

print(soup.a.next_sibling.next_sibling)#a標籤的下乙個標籤的下乙個標籤

print(soup.a.previous_sibling)#a標籤的前乙個標籤

print(soup.a.previous_sibling.previous_sibling)#a標籤的前乙個標籤的前乙個標籤

平行遍歷

import requests

from bs4 import beautifulsoup

r=requests.get('')

demo=r.text

soup=beautifulsoup(demo,'html.parser')

for sibling in soup.a.next_siblings:#遍歷後續節點

print(sibling)

for sibling in soup.a.previous_sibling:#遍歷之前的節點

print(sibling)

import requests

from bs4 import beautifulsoup

r=requests.get('')

demo=r.text

soup=beautifulsoup(demo,'html.parser')

print(soup.prettify())

基於bs4庫的HTML內容遍歷方法

html基本格式 樹型格式 遍歷方式 下行遍歷 根節點到葉節點 上行遍歷 葉節點到根節點 平行遍歷 標籤樹的下行遍歷 屬性說明 contents 子節點的列表,將所有兒子節點存入列表 children 子節點的迭代型別,與.contents類似,用於迴圈遍歷兒子節點 descendants 子孫節點...

基於bs4庫的HTML查詢方法

find all name,attrs,recursive,string,kwargs 返回乙個列表型別,內部儲存查詢的結果 對標籤名稱的檢索字串 import requests from bs4 import beautifulsoup r requests.get demo r.text sou...

bs4之標籤樹的下行遍歷

import requests from bs4 import beautifulsoup def bianlisoup url r requests.get url,timeout 30 r.raise for status demo r.text soup beautifulsoup demo,...