
Beautiful Soup 庫一般被稱為bs4庫,支持Python3,是我們寫爬蟲非常好的第三方庫,因用起來十分的簡便流暢,所以也被人叫做“美味湯”,目前bs4庫的最新版本是4.60,下文會介紹該庫的最基本的使用,具體詳細的細節還是要看:[官方檔案](Beautiful Soup Documentation)
bs4庫的安裝
Python的強大之處就在于他作為一個開源的語言,有著許多的開發者為之開發第三方庫,這樣我們開發者在想要實作某一個功能的時候,只要專心實作特定的功能,其他細節與基礎的部分都可以交給庫來做,bs4庫 就是我們寫爬蟲強有力的幫手,另外要注意:光理論是不夠的,這里順便免費送大家一套2020最新python入門到高級專案實戰視頻教程,可以去小編的Python交流.裙 :七衣衣九七七巴而五(數字的諧音)轉換下可以找到了,還可以跟老司機交流討教!
安裝的方式非常簡單:我們用pip工具在命令列里進行安裝
pip install beautifulsoup4
接著我們看一下是否成功安裝了bs4庫
pip list
這樣我們就成功安裝了 bs4 庫

bs4庫的簡單使用
這里我們先簡單的講解一下bs4庫的使用,
暫時不去考慮如何從web上抓取網頁,
假設我們需要爬取的html是如下這么一段:
下面的一段HTML代碼將作為例子被多次用到.這是 愛麗絲夢游仙境的 的一段內容(以后內容中簡稱為 愛麗絲 的檔案): <html><head><title>The Dormouse's story</title></head> <body> <p ><b>The Dormouse's story</b></p> <p >Once upon a time there were three little sisters; and their names were http://example.com/elsie" id="link1">Elsie, http://example.com/lacie" id="link2">Lacie and http://example.com/tillie" id="link3">Tillie; and they lived at the bottom of a well.</p> <p >...</p> </html>
下面我們開始用bs4庫決議這一段html網頁代碼,
#匯入bs4模塊 from bs4 import BeautifulSoup #做一個美味湯 soup = BeautifulSoup(html,'html.parser') #輸出結果 print(soup.prettify()) ''' OUT: # <html> # <head> # <title> # The Dormouse's story # </title> # </head> # <body> # <p > # <b> # The Dormouse's story # </b> # </p> # <p > # Once upon a time there were three little sisters; and their names were # <a href="http://example.com/elsie" id="link1"> # Elsie # </a> # , # <a href="http://example.com/lacie" id="link2"> # Lacie # </a> # and # <a href="http://example.com/tillie" id="link2"> # Tillie # </a> # ; and they lived at the bottom of a well. # </p> # <p > # ... # </p> # </body> # </html> '''
可以看到bs4庫將網頁檔案變成了一個soup的型別,
事實上,bs4庫 是決議、遍歷、維護、“標簽樹“的功能庫,
通俗一點說就是: bs4庫把html源代碼重新進行了格式化,
從而方便我們對其中的節點、標簽、屬性等進行操作,
下面是幾個簡單的瀏覽結構化資料的方式 :
請仔細觀察最前面的html檔案
# 找到檔案的title
soup.title
# <title>The Dormouse's story</title>
#title的name值
soup.title.name
# u'title'
#title中的字串String
soup.title.string
# u'The Dormouse's story'
#title的父親節點的name屬性
soup.title.parent.name
# u'head'
#檔案的第一個找到的段落
soup.p
# <p ><b>The Dormouse's story</b></p>
#找到的p的class屬性值
soup.p['class']
# u'title'
#找到a標簽
soup.a
# http://example.com/elsie" id="link1">Elsie
#找到所有的a標簽
soup.find_all('a')
# [http://example.com/elsie" id="link1">Elsie,
# http://example.com/lacie" id="link2">Lacie,
# http://example.com/tillie" id="link3">Tillie]
#找到id值等于3的a標簽
soup.find(id="link3")
# http://example.com/tillie" id="link3">Tillie
通過上面的例子 我們知道bs4庫是這樣理解一個html源檔案的:
首先 把html源檔案轉換為soup型別
接著 從中通過特定的方式抓取內容
更高級點的用法?
從檔案中找到所有<a>標簽的鏈接:
#發現了沒有,find_all方法回傳的是一個可以迭代的串列for link in soup.find_all('a'):
print(link.get('href')) # http://example.com/elsie
# http://example.com/lacie
# http://example.com/tillie
從檔案中獲取所有文字內容:
#我們可以通過get_text 方法 快速得到源檔案中的所有text內容, print(soup.get_text()) # The Dormouse's story # # The Dormouse's story # # Once upon a time there were three little sisters; and their names were # Elsie, # Lacie and # Tillie; # and they lived at the bottom of a well.
最后注意:光理論是不夠的,這里順便免費送大家一套2020最新python入門到高級專案實戰視頻教程,可以去小編的Python交流.裙 :七衣衣九七七巴而五(數字的諧音)轉換下可以找到了,還可以跟老司機交流討教!
本文的文字及圖片來源于網路加上自己的想法,僅供學習、交流使用,不具有任何商業用途,著作權歸原作者所有,如有問題請及時聯系我們以作處理,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/140882.html
標籤:Python
上一篇:DirectSound 實時播放
