Beautiful Soup學習

自己開路自己走發表於2016-12-06

使用pyquey時碰到多值屬性沒辦法處理的情況,想起了BS4可以處理這種情況,於是大概回顧了一下BS4的文件,把溫習的知識點寫到部落格,以便以後查閱。

bs4官方文件地址點選開啟連結

一、bs4物件種類:

1、Tage 相當於htm文件中的標籤,和標籤一樣,它有name和attribute屬性,通過標籤名.name和標籤名.attribute訪問。

2、 NavigableString物件,可遍歷的字串,通過tag.string訪問,該物件是標籤中的字串物件,支援BS4中遍歷和搜尋文件樹種的一些方法(不支援find)

3、BeautifulSoup 物件表示的是一個文件的全部內容.大部分時候,可以把它當作 Tag 物件,它支援 遍歷文件樹 搜尋文件樹 中描述的大部分的方法,沒有name和attribute屬性。

4、註釋及特殊字串


二、過濾器型別:過濾器其實就是傳入選擇方法中的引數的型別,可以使字串、正規表示式、列表、Ture和方法

1、字串,一般是標籤名

2、正規表示式,使用re模組的match()方法匹配符合模式的文件

3、列表,返回與列表中元素一致的文件內容

4、Ture,可以匹配任何值

5、方法,定義一個方法,官方文件例子解釋的很清楚


三、搜尋文件樹 find_all()和find()

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

1、name 引數可以查詢所有名字為 name 的tag,字串物件會被自動忽略掉.

2、kewords引數,用來通過制定屬性名來搜尋文件

3、attrs引數,通過賦值一個字典給該引數可以查詢一些不能通過keywords引數搜尋的屬性

4、recursive  呼叫 tag的 find_all() 方法時,Beautiful Soup會檢索當前tag的所有子孫節點,如果只想搜尋tag的直接子節點,可以使用引數 recursive=False

5、text引數用來搜尋相匹配的文字內容



find_all() 幾乎是Beautiful Soup中最常用的搜尋方法,所以我們定義了它的簡寫方法. BeautifulSoup 物件和 tag 物件可以被當作一個方法來使用

soup.find_all("a")
soup("a")
以上兩種搜尋結果是一樣的。


相關文章