當前位置:成語大全網 - 新華字典 - 26、BeautifulSoup之Tag

26、BeautifulSoup之Tag

上集回顧:

上集快速領略了壹下 BeautifulSoup 的大概功能,並學習了如何安裝和構造壹個 BeautifulSoup 對象。

本集學習 BeautifulSoup 的 Tag 及其屬性。

由於HTML和XML是由大量tag組合和嵌套而成,所以檢索目標信息就是檢索目標tag的過程。

壹、Tag對象

Tag 對象與XML或HTML原生文檔中的tag相同:

Tag有很多方法和屬性,其中最重要的屬性是: name和attributes。

二、name屬性

每個tag都有自己的名字,通過 .name 來獲取:

如果改變了tag的name,那將影響所有通過當前Beautiful Soup對象生成的HTML文檔:

三、attributes屬性

壹個tag可能有很多個屬性. tag <b class="boldest"> 有壹個 “class” 的屬性,值為 “boldest” . tag的屬性的操作方法與字典相同:

也可以直接”點”取屬性, 比如: .attrs :

tag的屬性可以被添加,刪除或修改. 再說壹次, tag的屬性操作方法與字典壹樣

四、多值屬性

HTML 定義了壹系列可以包含多個值的屬性。最常見的多值的屬性是 class (壹個tag可以有多個CSS的class). 還有壹些屬性 rel , rev , accept-charset , headers , accesskey 。在Beautiful Soup中多值屬性的返回類型是list:

如果某個屬性看起來好像有多個值,但在任何版本的HTML定義中都沒有被定義為多值屬性,那麽Beautiful Soup會將這個屬性作為字符串返回

將tag轉換成字符串時,多值屬性會合並為壹個值

如果轉換的文檔是XML格式,那麽tag中不包含多值屬性

五、字符串

字符串常被包含在tag內。BeautifulSoup用 NavigableString 類來包裝tag中的字符串:

壹個 NavigableString 字符串與Python中的Unicode字符串相同,通過 unicode() 方法可以直接將 NavigableString 對象轉換成Unicode字符串:

本集總結:

下集見