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