Python爬蟲經常使用模塊:BeautifulSoup

BeautifulSoup用途
html


    BeautifulSoup 藉助網頁的結構和屬性等特性來解析網頁,能夠用它來方便地從網頁中提取所需信息。
正則表達式

    BeautifulSoup自動將輸入文檔轉換爲Unicode編碼,輸出文檔轉換爲UTF-8編碼。數據結構


BeautifulSoup依賴於解析器
ide


    它除了支持Python標準庫中的HTML解析器外,還支持第三方解析器:
編碼

圖片


用法示例
spa


    在如下示例中,使用的均是 Python 標準庫中的HTML解析器,使用方法爲BeautifulSoup(markup, 'html.parser')
3d

圖片


① prettify() 方法code

    使用 prettify() 方法把網頁信息(字符串)以標準的縮進格式輸出,輸出的結果中不少節點,每個節點均可以做爲一個對象,直接調用節點的名稱就能夠提取節點元素。htm

圖片


② 輸出指定節點的文本內容對象

    在使用 prettify() 方法輸出的結果中,能夠看到有 title 節點:

圖片

    使用 soup.title 能夠提取出 title 節點,輸出結果爲:<title>貓眼電影 - 一網打盡好電影</title> 。

    查看一下 soup.title 的類型,爲 bs4.element.Tag類型,這是 BeautifulSoup 中一個重要的數據結構,咱們經過節點提取的結果都是這種 Tag 類型。Tag 具備一些屬性,例如 string 屬性。

    調用 string 屬性就能夠獲得這個節點內的文本內容了:

圖片


    注意:以上這種提取節點元素的方式,當同一節點名出現屢次時,只能提取到第一個匹配的節點。


③ 獲取 Tag (標籤)的屬性

    使用 soup.標籤名.attrs 能夠獲取指定標籤的全部屬性。例如:

圖片

    使用 soup.標籤名['屬性名'] 能夠獲取標籤中指定屬性的內容。例如:

圖片


④ find() 和 find_all() 方法——面向對象的匹配

    BeautifulSoup 提供了一些查詢方法,好比 find() find_all() 等,調用它們,而後傳入相應的參數,就能夠靈活查詢了。

     find() 

    使用 find() 方法,能夠獲得符合條件的第一個元素。例如,使用 soup.find(name='p') 能夠獲得節點名爲 p 的第一個元素:

圖片

    find_all() 

    使用 find_all() 方法,能夠獲得全部符合條件的元素。例如,使用 soup.find(name='p') 能夠獲得節點名爲 p 的全部元素組成的列表:

圖片

    find() 和 find_all() 方法 常與 正則表達式 配合使用。

    

    挖個坑,之後填:

    什麼是正則表達式?如何使用?


------------------- End -------------------

https://mp.weixin.qq.com/s/o33ptmbX22kIrA-mBvNZdA

相關文章
相關標籤/搜索