Python學習之BeautifulSoup庫詳解

2021-08-02 23:25:03 字數 2426 閱讀 5574

beautifulsoup庫是解析、遍歷、維護 「標籤樹」 的功能庫

學習python爬蟲

有所幫助。

beautifulsoup庫我們常稱之為bs4,匯入該庫為:from bs4 import beautifulsoup。其中,import beautifulsoup即主要用bs4中的beautifulsoup類。

bs4庫解析器

beautifulsoup類的基本元素

1 import requests

2 from bs4 import beautifulsoup 3

4res= requests.get('')

5 soup = beautifulsoup(res.text,'lxml')

6print(soup.a)

7 # 任何存在於html語法中的標籤都可以用soup.訪問獲得,當html文件中存在多個相同對應內容時,soup.返回第乙個。8

9print(soup.a.name)

10 # 每個都有自己的名字,可以通過.name獲取,字串型別11

12print(soup.a.attrs)

13print(soup.a.attrs['class'])

14 # 乙個可能有乙個或多個屬性,是字典型別15

16print(soup.a.string)

17 #.string可以取到標籤內非屬性字串18

19 soup1 = beautifulsoup('

','lxml')

20print(soup1.p.string)

21print(type(soup1.p.string))

22 # comment是一種特殊型別,也可以通過

.string取到

執行結果:

登入a

['no-login'] 登入

這裡是注釋

bs4庫的html內容遍歷

html的基本結構

標籤樹的下行遍歷

其中,beautifulsoup型別是標籤樹的根節點。

1 # 遍歷兒子節點

2forchildinsoup.body.children:

3     print(child.name) 4

5 # 遍歷子孫節點

6forchildinsoup.body.descendants:

7     print(child.name)

標籤樹的上行遍歷

1 # 遍歷所有先輩節點時,包括soup本身,所以要if...else...判斷

2forparentin soup.a.parents:

3ifparentis none:

4print(parent)

5else:

6print(parent.name)

執行結果:

divdiv

body

html

[document]

標籤樹的平行遍歷

1 # 遍歷後續節點

2forsiblinginsoup.a.next_sibling:

3     print(sibling) 4

5 # 遍歷前續節點

6forsiblinginsoup.a.previous_sibling:

7     print(sibling)

bs4庫的prettify()方法

prettify()方法可以將**格式搞的標準一些,用soup.prettify()表示。在pycharm中,用print(soup.prettify())來輸出。

操作環境:mac,python 3.6,pycharm 2016.2

python學習詳解 Python學習之字典詳解

在元組和列表中,都是通過編號進行元素的訪問,但有的時候我們按名字進行資料甚至資料結構的訪問,在c 中有map的概念,也就是對映,在python中也提供了內建的對映型別 字典。對映其實就是一組key和value以及之間的對映函式,其特點是 key的唯一性 key與value的一對多的對映。1.字典的建...

Python學習之函式

0 引論 函式是實現 復用的主要途徑之一,而且函式的使用也可以使得程式更加容易理解,更加規範化。程式很多時候並不是給計算機的,而是給人看的。這裡總結一下python中的函式的應用 1 函式 首先python中的函式的格式是怎樣的。def 函式名 形參 函式體 下面是乙個計算fibonacci數列的函...

python學習之函式

抽象 斐波那契數列 fibs 0,1 for i in range 10 print fibs fibs 0,1 i 2 while i 20 i 1 print fibs 使用callable判斷函式是否可以呼叫 import math x 1 y math.sqrt print callable...