python爬蟲學習筆記3:bs4及BeautifulSoup庫學習
阿新 • • 發佈:2019-02-11
Beuatiful Soup
bs類對應一個HTML/xml文件的全部內容
from bs4 import BeautifulSoup
import bs4
soup=BeautifulSoup('<p>data</p>','html.parser')
soup2 = BeautifulSoup(open(1.html),"html.parser")
BS解析器
解析器 | 使用方法 | 條件 |
---|---|---|
bs4de的html解析器 | BeautifulSoup(mk,’html.parser’) | 安裝bs4 |
lxml的html解析器 | BeautifulSoup(mk,’lxml’) | pip install lxml |
lxml的xml解析器 | BeautifulSoup(mk,’xml’) | pip install lxml |
html5lib的解析器 | BeautifulSoup(mk,’html5lib’) | pip install html5lib |
BS的基本元素
基本元素 | 說明 |
---|---|
Tag | 標籤,最基本的資訊組織單元,分別用<>和開頭和結尾.<tag> (只列出第一個滿足條件的元素) |
Name | 標籤的名字,格式:<tag>.name |
Attrbutes | 標籤的屬性,格式:<tag>.attrs |
NavigableString | 標籤內非屬性字串,<tag>.string |
Comment | 標籤內字串的註釋部分,一種特殊的Comment型別 |
基於bs4庫的html內容遍歷方法
下行便利
屬性 | 說明 |
---|---|
.contents | 子節點的列表,將<tag> 所有的兒子節點存入列表 |
.children | 子節點的迭代型別,與.contents類似,用於迴圈遍歷兒子節點 |
.descendants | 子孫節點的迭代型別,包含所有的子孫節點,用於迴圈遍歷 |
上行遍歷
屬性 | 說明 |
---|---|
.parent | 節點的父親標籤 |
.parents | 節點的先輩標籤的迭代型別,用於迴圈遍歷先輩節點 |
平行遍歷
平行遍歷發生在同一個父節點下
滿足平行條件的不僅是標籤,還可能有NavigableString型別
屬性 | 說明 |
---|---|
.next_sibling | 返回按照HTML文字順序的下一個平行節點標籤 |
.previous_sibling | 返回按照HTML文字順序的上一個平行節點標籤 |
.next_silings | 迭代型別,返回按照html文字順序的後續所有平行節點標籤 |
.previous_siblings | 迭代型別,返回按照html文字順序的前續所有平行節點標籤 |
給予bs4庫的html格式輸出
如何讓html內容,更加有好的顯示
prettify()
對內容html文字內容進行美化
能為html文字的標籤以及內容增加換行符,也可以對每一個標籤進行相關的處理。