熱線電話:13121318867

登錄
首頁精彩閱讀Python爬蟲利器BeautifulSoup解析!
Python爬蟲利器BeautifulSoup解析!
2020-05-14
收藏

BeautifulSoup是一種可以從html和xml中快速提取內容的python庫,共有四種類型,對于爬蟲解析來說,主要用其中的遍歷文檔樹和搜索文檔樹。


來自BeautifulSoup的官方的一個示例,使用的是HTML文本


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.


...



1.導入模塊   from bs4import BeautifulSoup


2.創建beautifulsoup對象  


beautifulobj = BeautifulSoup(html_doc)#

print(type(beautifulobj))#beautifulsoup'="">

print(beautifulobj.prettify())#打印按照lxml格式的補全代碼,太長,省略


說明:此處在創建對象時未指定解析器,默認使用的是python自帶的解析器html.parse,原因在于新買的電腦安裝lxml模塊時失敗,官方推薦使用lxml解析器,可通過


beautifulobj = BeautifulSoup(html_doc,"lxml")來指定lxml解析器解析。


Python爬蟲利器BeautifulSoup有四種類型,它們分別是Tag,BeautifulSoup,NavigableString,comment。


Tag類型即節點,比如HTML中的a標簽、p標簽等等,tag類型主要有兩個屬性,name和attributes屬性,可通過.name和.attrs方法獲取屬性值,其中.attrs返回字典類型,并且如果是多值屬性的話,其value是一個列表;也可通過["href"]指定輸出特定的屬性值。


print(type(beautifulobj.a))#

print(beautifulobj.p.name)#p,這樣的使用方式,我是懵的,自己都敲進去P標簽了,感覺自己有點**

print(beautifulobj.p.attrs)#,返回一個字典,字典的value有可能是個list, {'class': ['title']}class是個多值屬性

print(beautifulobj.p["class"])#['title'],此處是個列表,如果不是多值屬性,輸出就是字符串

print(beautifulobj.a["id"])#link1


BeautifulSoup類型是整個文檔的根形式,一種特殊的Tag類型,支持遍歷文檔樹和搜索文檔樹的大部分方法,但是沒有name和attrs屬性。


print(type(beautifulobj))#beautifulsoup'="">


NavigableString是tag中的字符串內容形式。


print(type(beautifulobj.p.string))#


comment是文檔中的備注類型。


在使用.string時,可同樣輸出NavigableString和coment類型,如果獲取特定的內容而又想與另一種類型區別對待時必須通過type來進行判斷。


BeautifulSoup是爬蟲必學的技能之一,大家可以多多了解。


數據分析咨詢請掃描二維碼

若不方便掃碼,搜微信號:CDAshujufenxi

數據分析師資訊
更多

OK
客服在線
立即咨詢
日韩人妻系列无码专区视频,先锋高清无码,无码免费视欧非,国精产品一区一区三区无码
客服在線
立即咨詢