天天看點

爬蟲-bs4的使用一.find方法的使用二.finall的使用 三.擷取标簽頁中的文本  四.擷取标簽當中的屬性值五.擷取多層層标簽層級下的具體内容

目錄

一.find方法的使用

二.finall的使用 

三.擷取标簽頁中的文本 

 四.擷取标簽當中的屬性值

五.擷取多層層标簽層級下的具體内容

beautifulsoup4是Python資料包中專門用于資料解析的資料包,它能夠比對網頁原碼中的标簽頁,進而從網頁中獲得我們想要的資料,本章節我們來講述bs4的一些簡單的使用。

一.find方法的使用

#首先我們打開一個text.html文檔,打開的模式為隻讀模式,其編碼為utf-8
fp=open('./text.html','r',encoding='utf-8')
#使用我們的BeautifulSoup函數将我們的文本進行處理。
    soup=BeautifulSoup(fp,'lxml')
    #找到第一次出現的a标簽的位置
    print(soup.find('a'))
           
爬蟲-bs4的使用一.find方法的使用二.finall的使用 三.擷取标簽頁中的文本  四.擷取标簽當中的屬性值五.擷取多層層标簽層級下的具體内容

使用我們下面的代碼與上面的功能時等價的

print(soup.a)
           
爬蟲-bs4的使用一.find方法的使用二.finall的使用 三.擷取标簽頁中的文本  四.擷取标簽當中的屬性值五.擷取多層層标簽層級下的具體内容

當然,在find方法使用的時候,還可以指定我們的class參數,注意,在我們的class_後面一定要加上“_”,否則就會報錯 

print(soup.find('div',class_="special-column-bar"))
           
爬蟲-bs4的使用一.find方法的使用二.finall的使用 三.擷取标簽頁中的文本  四.擷取标簽當中的屬性值五.擷取多層層标簽層級下的具體内容

二.finall的使用 

使用find_all方法,能夠找出我們所有滿足條件的标簽頁,并且将所有符合條件的結果組合成一個清單并傳回。

print(soup.find_all('div',class_="span"))
           
爬蟲-bs4的使用一.find方法的使用二.finall的使用 三.擷取标簽頁中的文本  四.擷取标簽當中的屬性值五.擷取多層層标簽層級下的具體内容

三.擷取标簽頁中的文本 

擷取标簽之間的文本資料,可以使用下面的方法

soup.a.text/string/get_text()      

其中soup.string隻能擷取該标簽下直系文本下的内容。

print(soup.script.string)
           
爬蟲-bs4的使用一.find方法的使用二.finall的使用 三.擷取标簽頁中的文本  四.擷取标簽當中的屬性值五.擷取多層層标簽層級下的具體内容

 四.擷取标簽當中的屬性值

下面的代碼中我們能擷取到整張網頁中的body标簽頁中img标簽的src屬性值

print(soup.body.img['src'])
           
爬蟲-bs4的使用一.find方法的使用二.finall的使用 三.擷取标簽頁中的文本  四.擷取标簽當中的屬性值五.擷取多層層标簽層級下的具體内容

五.擷取多層層标簽層級下的具體内容

我們先用select函數尋找span标簽,然後再在我們的span标簽下比對p标簽

print(soup.select('.span >p'))
           
爬蟲-bs4的使用一.find方法的使用二.finall的使用 三.擷取标簽頁中的文本  四.擷取标簽當中的屬性值五.擷取多層層标簽層級下的具體内容

 接下來我們進行一下對比 

print(soup.select('.span'))
           
爬蟲-bs4的使用一.find方法的使用二.finall的使用 三.擷取标簽頁中的文本  四.擷取标簽當中的屬性值五.擷取多層層标簽層級下的具體内容