Bs4庫的一些小記錄

2021-10-03 16:44:47 字數 1374 閱讀 5793

beautifulsoup4使用方法:

soup=beautifulsoup(demo,「html.parser」)

soup.head (head標籤)

soup.head.contents (head標籤的兒子節點)

soup.body.contents(body標籤的兒子節點)

len(soup.body.contents) (獲取兒子節點的數量,可用列表型別的下標獲取相關元素)

soup.body.contents1

.next_sibling 返回按照html文字順序的下乙個平行節點標籤

.previous_sibling 返回按照html文字順序的上乙個平行節點標籤

.next_siblings 迭代型別,返回按照html文字順序的後續所有平行節點標籤

.previous_siblings 迭代型別,返回按照html文字順序的前序所有平行節點標籤

平行遍歷發生在同乙個父節點下的個節點間

soup.prettify()能夠為html文字增加換行符

例如:print(soup.a.prettify()),在bs4庫中很好運用,

獲取a標籤例項:

soup=beautifulsoup(demo,「html.parser」)

for link in soup.find_all(『a』)

print(link.get(『href』))

關於find_all:

find_all(name,attrs,recursive,string,**kwargs)

name:對標籤名稱的檢索字串

soup.find_all(『a』),獲取a標籤,soup.find_all([『a』,『b』]),同時獲取a,b兩個標籤

attrs:對標籤屬性值的檢索字串,可標註屬性資訊

例如:soup.find_all(『p』,『course』),檢索帶有course屬性值的p標籤

soup.find_all(id=『link1』),id域為link1的元素,若為,則不存在,所以必須精確

否則運用re,例如soup.find_all(id=re.compile(『link』))

recursive:是否對子孫全部檢索,預設true

例子:soup.find_all(『a』,recursive=false),若為【】說明沒不存在,可能存在於子孫節點

string:<>…中字串區域的檢索字串

soup.find_all(string=「basic python」),同樣是要精確,否則運用re

比如:soup.find_all(string=re.compile(「python」))

(…)等價於.find_all(…)

soup(…)等價於soup.find_all(…)

基於bs4庫的HTML查詢方法

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

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

html可以看做一棵標籤樹 屬性說明 contents 將該標籤所有的兒子節點存入列表 children 子節點的迭代型別,和contents類似,用於遍歷兒子節點 descendants 子孫節點的迭代型別,包含所有的子孫跌點,用於迴圈遍歷 import requests from bs4 imp...

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

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