Python3 BeautifulSoup

之前有過幾次Python的學習史,每次都無疾而終,由于并沒有實際的工作需要用到Python,我把學到的東西做個總結(jié),忘記的時候拿出來看看,希望有一天能學以致用。

先總結(jié)再分析
BeautifulSoup是一個HTML或 XML的解析庫,它會自動將輸入文檔轉(zhuǎn)換為Unicode編碼,輸出文檔轉(zhuǎn)換為UTF-8編碼
BeautifulSoup在解析時依賴第三方解析器,這就是為什么參數(shù)里面要加'lxml',安裝lxml時會提示安裝xcode,也就是需要安裝C語言庫。

image

from bs4 import BeautifulSoup          #bs4庫里面導入BeautifulSoup模塊

soup = BeautifulSoup(markup,'lxml')    #經(jīng)典用法,各大教程可見

然后我們研究soup的屬性和使用方法,type(soup)得到的是<class 'bs4.BeautifulSoup'>

Soup使用方法:
1.節(jié)點選擇器
直接調(diào)用節(jié)點的名稱就可以選擇節(jié)點元素,在調(diào)用string屬性就可以得到節(jié)點內(nèi)的文本內(nèi)容了,適用于單個節(jié)點層次非常清晰的html文檔。


import requests

from bs4import BeautifulSoup

response = requests.get('https://www.qiushibaike.com/').text   #獲取網(wǎng)頁,并轉(zhuǎn)為文本

soup = BeautifulSoup(response,'lxml')   #將對象傳入解析器

span = soup.span.string    #定位span標簽,獲取文本內(nèi)容

print(span)

輸出結(jié)果:

image

用find_all('span')可以查詢出所有span標簽的內(nèi)容 或者find_all(節(jié)點 = '節(jié)點屬性'),還有子父兄弟節(jié)點等,目前用得少,暫不深究。
2.CSS選擇器
使用CSS選擇器時,只需要調(diào)用select()方法,獲取多行信息時需要使用for遍歷,獲取文本方式有兩種 .string .get_text()

在取得含有特定CSS屬性的元素時,標簽名不加任何修飾,類名前加點,id名前加 #。CSS選擇器使用方法請點擊(https://www.cnblogs.com/ALittleBee/p/7702560.html)
3.正則
使用正則最精準,但容易寫錯

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容