Beautiful Soup庫(kù)

Beautiful Soup庫(kù)

安裝

  • win+X 命令提示符(使用管理員權(quán)限啟動(dòng)控制臺(tái))
  • 輸入安裝命令
pip install beautifulsoup4

Beautiful Soup庫(kù)的安裝小測(cè)

演示HTML頁(yè)面地址:http://python123.io/ws/demo.html

demo = r.text
from bs4 import BeautifulSoup
soup = BeautifulSoup(demo, "html.parser")
print(soup.prettify())

BeautifulSoup庫(kù)的基本元素

Beaufitul Soup庫(kù)的引用
Beautiful Soup庫(kù)瓤荔,也叫beautifulsoup4或bs4

from bs4 import BeautifulSoup
from bs4 import BeautifulSoup
soup = BeautifulSoup("<html>data</html>","html.parser")
soup2 = BeautifulSoup(open("D://demo.html"), "html.parser")

BeautifulSoup對(duì)應(yīng)一個(gè)HTML/XML文檔的全部?jī)?nèi)容

Beautiful Soup庫(kù)解析器

解析器 使用方法 條件
bs4的HTML解析器 BeautifulSoup(mk, 'html.parser') 安裝bs4庫(kù)
lxml的HTML解析器 BeautifulSoup(mk, 'lxml') pip install lxml
lxml的XML解析器 BeautifulSoup(mk, 'xml') pip install lxml
html5lib的解析器 BeautifulSoup(mk, 'html5lib') pip install html5lib

Beautiful Soup類的基本元素

基本元素 說(shuō)明
Tag 標(biāo)簽辉懒,最基本的信息組織黨員谷扣,分別用<>和</>標(biāo)明開頭和結(jié)尾
Name 標(biāo)簽的名字符相,<p>...</p>的名字是‘p’,格式:<tag>.name
Attributes 標(biāo)簽的屬性臂痕,字典形式組織贝乎,格式:<tag>.attrs
NavigableString 標(biāo)簽內(nèi)非屬性字符串柴淘,<>...</>中字符串关斜,格式:<tag>.string
Comment 標(biāo)簽內(nèi)字符串的注釋部分示括,一種特殊的Comment類型

基于bs4庫(kù)的HTML內(nèi)容遍歷方法

  • 回顧demo.html
>>> import requests
>>> r = requests.get("http://python123.io/ws/demo.html")
>>> demo = r.text
>>> demo
'<html><head><title>This is a python demo page</title></head><body><p class="title"><b>The demo python introduces several python courses.</b></p><p class="course">Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:<a  class="py1" id="link1">Basic Python</a> and <a  class="py2" id="link2">Advanced Python</a>.</p></body></html>'
  • HTML基本格式
<html>
    <head>
        <title>This is a python demo page</title>
    </head>
    <body>
        <p class="title">
            <b>The demo python introduces several python courses.</b>
        </p>
        <p class="course">Python is a wonderful general-purpose programming language. You can learn Python from novice to professional by tracking the following courses:
            <a  class="py1" id="link1">Basic Python</a>
             and 
            <a  class="py2" id="link2">Advanced Python</a>
            .
        </p>
    </body>
</html>

標(biāo)簽樹的下行遍歷

屬性 說(shuō)明
.contents 子節(jié)點(diǎn)的列表,將<tag>所有兒子節(jié)點(diǎn)存入列表
.children 子節(jié)點(diǎn)的迭代類型痢畜,與.contents類似垛膝,用于循環(huán)遍歷兒子節(jié)點(diǎn)
.descendants 子孫節(jié)點(diǎn)的迭代類型,包含所有子孫節(jié)點(diǎn)丁稀,用于循環(huán)遍歷
for child in soup.body.children:
    print(child)

標(biāo)簽樹的上行遍歷

屬性 說(shuō)明
.parent 節(jié)點(diǎn)的父親標(biāo)簽
.parents 節(jié)點(diǎn)先輩標(biāo)簽的迭代類型吼拥,用于循環(huán)遍歷先輩節(jié)點(diǎn)
>>> soup = BeautifulSoup(demo, "html.parser")
>>> for parent in soup.a.parents:
           if parent is None:
               print(parent)
           else:
               print(parent.name)

標(biāo)簽樹的平行遍歷

屬性 說(shuō)明
.next_sibling 返回按照HTML文本順序的下一個(gè)平行節(jié)點(diǎn)標(biāo)簽
.previous_sibling 返回按照HTML文本順序的上一個(gè)平行節(jié)點(diǎn)標(biāo)簽
.next_siblings 迭代類型,返回按照HTML文本順序的后續(xù)所有平行節(jié)點(diǎn)標(biāo)簽
.previous_siblings 迭代類型线衫,返回按照HTML文本順序的前續(xù)所有平行節(jié)點(diǎn)標(biāo)簽
for sibling in soup.a.next_siblings:
    print(sibling)
for sibling in soup.a.previous_siblings:
    print(sibling)

基于bs4庫(kù)的HTML格式輸出

  • bs4庫(kù)的prettify()方法
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末凿可,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子桶雀,更是在濱河造成了極大的恐慌,老刑警劉巖唬复,帶你破解...
    沈念sama閱讀 217,406評(píng)論 6 503
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件矗积,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡敞咧,警方通過查閱死者的電腦和手機(jī)棘捣,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,732評(píng)論 3 393
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)休建,“玉大人乍恐,你說(shuō)我怎么就攤上這事评疗。” “怎么了茵烈?”我有些...
    開封第一講書人閱讀 163,711評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵百匆,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我呜投,道長(zhǎng)加匈,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,380評(píng)論 1 293
  • 正文 為了忘掉前任仑荐,我火速辦了婚禮雕拼,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘粘招。我一直安慰自己啥寇,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,432評(píng)論 6 392
  • 文/花漫 我一把揭開白布洒扎。 她就那樣靜靜地躺著辑甜,像睡著了一般。 火紅的嫁衣襯著肌膚如雪逊笆。 梳的紋絲不亂的頭發(fā)上栈戳,一...
    開封第一講書人閱讀 51,301評(píng)論 1 301
  • 那天,我揣著相機(jī)與錄音难裆,去河邊找鬼子檀。 笑死,一個(gè)胖子當(dāng)著我的面吹牛乃戈,可吹牛的內(nèi)容都是我干的褂痰。 我是一名探鬼主播,決...
    沈念sama閱讀 40,145評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼症虑,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼缩歪!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起谍憔,我...
    開封第一講書人閱讀 39,008評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤匪蝙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后习贫,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體逛球,經(jīng)...
    沈念sama閱讀 45,443評(píng)論 1 314
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,649評(píng)論 3 334
  • 正文 我和宋清朗相戀三年苫昌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了颤绕。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 39,795評(píng)論 1 347
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖奥务,靈堂內(nèi)的尸體忽然破棺而出物独,到底是詐尸還是另有隱情,我是刑警寧澤氯葬,帶...
    沈念sama閱讀 35,501評(píng)論 5 345
  • 正文 年R本政府宣布挡篓,位于F島的核電站,受9級(jí)特大地震影響溢谤,放射性物質(zhì)發(fā)生泄漏瞻凤。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,119評(píng)論 3 328
  • 文/蒙蒙 一世杀、第九天 我趴在偏房一處隱蔽的房頂上張望阀参。 院中可真熱鬧,春花似錦瞻坝、人聲如沸蛛壳。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,731評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)衙荐。三九已至,卻和暖如春浮创,著一層夾襖步出監(jiān)牢的瞬間忧吟,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,865評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工斩披, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留溜族,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,899評(píng)論 2 370
  • 正文 我出身青樓垦沉,卻偏偏與公主長(zhǎng)得像煌抒,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子厕倍,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,724評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容

  • Beautiful Soup庫(kù)是解析寡壮、遍歷、維護(hù)“標(biāo)簽樹”的功能庫(kù) BeautifulSoup對(duì)應(yīng)一個(gè)HTML/X...
    紅茶紳士閱讀 516評(píng)論 0 0
  • 1.本周學(xué)習(xí)內(nèi)容思維導(dǎo)圖 2.Beautiful Soup 解析器 3.Beautiful Soup 類及其基本元...
    KelvinX閱讀 654評(píng)論 0 0
  • Beautiful Soup庫(kù)解析器 soup = BeautifulSoup(' data '讹弯,'html.pa...
    NiceBlueChai閱讀 862評(píng)論 0 2
  • Beautiful Soup是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的Python庫(kù).它能夠通過你喜歡的轉(zhuǎn)換器實(shí)...
    LitOrange閱讀 5,275評(píng)論 0 4
  • 體驗(yàn):路况既,很長(zhǎng),很陡组民,也許你走得很累棒仍!你想要放棄是很理所當(dāng)然,然而邪乍,你若是停住了前進(jìn)的腳步降狠。路永遠(yuǎn)在前方,那里永遠(yuǎn)...
    九洋閱讀 149評(píng)論 0 0