BeautifulSoup學(xué)習(xí)筆記(1)

一. BeautifulSoup簡(jiǎn)介

通過(guò)BeautifulSoup可以方便的獲取結(jié)構(gòu)化的數(shù)據(jù)隆敢。

1.get_text()方法

2.BeautifulSoup的find()和findAll()方法

3.其它BeautifulSoup對(duì)象

4.導(dǎo)航樹(shù)


1. get_text()方法

在獲取到BeautifulSoup對(duì)象后,調(diào)用其.get_text()會(huì)把該對(duì)象里面的所有標(biāo)簽都全部去掉,以文本字符串的形式返回里面的內(nèi)容发皿。


2. BeautifulSoup的find()和findAll()方法

findAll(tag,attribute,recursive,text,limit,keywords)

(1)標(biāo)簽參數(shù)tag可以是一個(gè)標(biāo)簽的名稱也可以是一個(gè)列表例如查找一個(gè)html中的所有標(biāo)題標(biāo)簽.findAll(['h1','h2','h3','h4','h5']).findAll('h1')

(2)屬性參數(shù)attributes是用一個(gè)字典封裝一個(gè)標(biāo)簽的若干屬性和對(duì)應(yīng)的屬性值。返回HTML文檔中里所有的紅色與綠色標(biāo)簽.findAll("span",{"class":["green","red"]})

(3)遞歸參數(shù)recursive是一個(gè)布爾變量拂蝎。True會(huì)查找所有的后代標(biāo)簽False只查找子標(biāo)簽

(4)文本參數(shù)text是對(duì)標(biāo)簽里面的文本內(nèi)容做匹配穴墅。

例如查找標(biāo)簽中the prince的標(biāo)簽數(shù)量nameList=obj.findAll(text="the prince")printlen(nameList)(5)限制參數(shù)limit當(dāng)指定limit=1,便是find()方法.只返回第一個(gè)查找到的對(duì)象(6)關(guān)鍵字參數(shù)keywords如bsObj.findAll(id="text")返回id為text的對(duì)象,由于屬性關(guān)鍵字可以完全是實(shí)現(xiàn)其功能所以不推薦使用該參數(shù),且有時(shí)使用該參數(shù)時(shí)會(huì)發(fā)生奇怪的錯(cuò)誤。


3. 其它BeautifulSoup對(duì)象

NavigableString對(duì)象用來(lái)表示標(biāo)簽里的文字而非標(biāo)簽Comment對(duì)象用來(lái)表示HTML文檔的注釋標(biāo)簽


4. 導(dǎo)航樹(shù)

(1)處理子標(biāo)簽和其他后代標(biāo)簽children屬性獲取所有子標(biāo)簽descendant屬性獲取所有后代標(biāo)簽温自。

(2)處理兄弟標(biāo)簽beautifulsoup對(duì)象的next_sibings屬性(獲取之后的所有兄弟標(biāo)簽)加上get_text()方法使得處理表格十分的方便玄货。

(3)處理父標(biāo)簽parent屬性。


二. 正則表達(dá)式與BeautifulSoup

正則表達(dá)式可以作為beautifulsoup的語(yǔ)句的任一個(gè)參數(shù)使用,讓目標(biāo)元素的查找更加的方便悼泌。例如查找圖片中的src屬性值以../img/gifts/img開(kāi)頭,以.jpg結(jié)尾松捉。需要注意的是,各種環(huán)境下的正則表達(dá)式是不同的馆里。

images = bsObj.findAll("img":

{"src":re.compile("\.\.\/img\/gifts/img.*\.jpg")})


三. 獲取屬性

獲取一個(gè)標(biāo)簽對(duì)象的全部屬性返回一個(gè)字典隘世,且對(duì)象的屬性值為列表的形式

myTag.attrs ? ?獲取某一個(gè)屬性

myTag.attrs["someAttr"][0]


四. Lambda表達(dá)式

BeautifulSoup允許我們把一個(gè)lambda表達(dá)式當(dāng)做findAll函數(shù)的參數(shù)。唯一的限制條件是必須把一個(gè)標(biāo)簽作為參數(shù)且返回的結(jié)果是布爾類(lèi)型鸠踪。beautifulsoup用這個(gè)函數(shù)來(lái)判斷它遇到的每一個(gè)標(biāo)簽對(duì)象丙者,最后把評(píng)估結(jié)果為“真”的標(biāo)簽保留,把其他標(biāo)簽去除。

例如: 獲取有兩個(gè)屬性的標(biāo)簽

bsobj.findAll(lambda tag: len(tag.attrs)==2)


五. 類(lèi)似的BeautifulSoup庫(kù)

l1.xml

和beautifulsoup一樣優(yōu)秀,里面的xpath甚至比beautifulsoup還要快速方便,并且xpath里面的路徑可以直接通過(guò)chrome來(lái)獲取营密。

2.PyQuery

pyquery 可讓用jQuery的語(yǔ)法來(lái)對(duì)xml進(jìn)行操作械媒。非常像jQuery API而已。

3.HTML parser

python自帶的解析庫(kù),不用安裝可以直接使用评汰。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纷捞,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子被去,更是在濱河造成了極大的恐慌兰绣,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,104評(píng)論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件编振,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)踪央,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,816評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)臀玄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人畅蹂,你說(shuō)我怎么就攤上這事健无。” “怎么了液斜?”我有些...
    開(kāi)封第一講書(shū)人閱讀 168,697評(píng)論 0 360
  • 文/不壞的土叔 我叫張陵累贤,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我少漆,道長(zhǎng)臼膏,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 59,836評(píng)論 1 298
  • 正文 為了忘掉前任示损,我火速辦了婚禮渗磅,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘检访。我一直安慰自己始鱼,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 68,851評(píng)論 6 397
  • 文/花漫 我一把揭開(kāi)白布脆贵。 她就那樣靜靜地躺著医清,像睡著了一般。 火紅的嫁衣襯著肌膚如雪卖氨。 梳的紋絲不亂的頭發(fā)上会烙,一...
    開(kāi)封第一講書(shū)人閱讀 52,441評(píng)論 1 310
  • 那天,我揣著相機(jī)與錄音双泪,去河邊找鬼持搜。 笑死,一個(gè)胖子當(dāng)著我的面吹牛焙矛,可吹牛的內(nèi)容都是我干的葫盼。 我是一名探鬼主播,決...
    沈念sama閱讀 40,992評(píng)論 3 421
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼村斟,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼贫导!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起蟆盹,我...
    開(kāi)封第一講書(shū)人閱讀 39,899評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤孩灯,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后逾滥,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體峰档,經(jīng)...
    沈念sama閱讀 46,457評(píng)論 1 318
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,529評(píng)論 3 341
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了讥巡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片掀亩。...
    茶點(diǎn)故事閱讀 40,664評(píng)論 1 352
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖欢顷,靈堂內(nèi)的尸體忽然破棺而出槽棍,到底是詐尸還是另有隱情,我是刑警寧澤抬驴,帶...
    沈念sama閱讀 36,346評(píng)論 5 350
  • 正文 年R本政府宣布炼七,位于F島的核電站,受9級(jí)特大地震影響布持,放射性物質(zhì)發(fā)生泄漏豌拙。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,025評(píng)論 3 334
  • 文/蒙蒙 一鳖链、第九天 我趴在偏房一處隱蔽的房頂上張望姆蘸。 院中可真熱鬧,春花似錦芙委、人聲如沸逞敷。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,511評(píng)論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)推捐。三九已至,卻和暖如春侧啼,著一層夾襖步出監(jiān)牢的瞬間牛柒,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,611評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工痊乾, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留皮壁,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 49,081評(píng)論 3 377
  • 正文 我出身青樓哪审,卻偏偏與公主長(zhǎng)得像蛾魄,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子湿滓,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,675評(píng)論 2 359

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