小白,BeautifulSoup初步整理,后續(xù)添加

form bs4 import BeautifulSoup
要導(dǎo)入bs4模塊
注意BeautifulSoup大小寫
soup = BeautifulSoup('html','html.parser')
第一個(gè)參數(shù)html為要解析的html文檔,html是字符串

網(wǎng)站建設(shè)哪家好,找創(chuàng)新互聯(lián)!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、微信小程序開發(fā)、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了敘永免費(fèi)建站歡迎大家使用!

解析到soup中后才可以開始使用

soup中用的比較多的方法為find_all()
用法有:
soup.find_all('a')//找出所有的a標(biāo)簽中的內(nèi)容,返回的是一個(gè)數(shù)組,數(shù)組中的每個(gè)元素又是BeautifulSoup對(duì)象
find_all()中還可以加屬性查詢,如:soup.findall('a',class=''),如果有多個(gè),可以soup.findall('a',class=['c1','c2']),class_中的內(nèi)容為樣式,只要查找的內(nèi)容中有其中一個(gè)樣式就行
如:
s = '''<a href='xxx' class='c1'>aaaaaaa</a>
<a href='xxx' class='c2'></a>
<a href='xxx' class='c1 c3'></a>
<a href='xxx' class='c1 c2'></a>'''
這里面的都可以找出來(lái)
還有一種寫法:
soup.find_all('a',attrs={'class':re.compile('')}),使用正則表達(dá)式,

拿到查找內(nèi)容后,如果要解析標(biāo)簽中的內(nèi)容
find_all()要循環(huán)取
假設(shè)拿到其中一個(gè),以a標(biāo)簽為例
拿到的a1 = '<a href='xxx' class='c1'>'
拿鏈接:href = a1['href']
拿標(biāo)簽中的內(nèi)容:content = a1.string

BeautifulSoup中還有find方法,用法與find_all()一樣,只是該方法只取第一個(gè)符合條件的

注:如果標(biāo)簽不是成對(duì)的,如:<span><img src='xxxx' ></span>
此時(shí),你用find('img')是拿不到img標(biāo)簽的,你需要取到他的上級(jí)成對(duì)標(biāo)簽span
然后在解析span標(biāo)簽中的內(nèi)容,如
span = soup.find('span'),假設(shè)拿到的是'<span><img src='xxxx' ></span>'
此時(shí)你需要解析他的子標(biāo)簽,使用children屬性
span.children
此時(shí)返回的結(jié)果是list_itrator對(duì)象,要么使用for循環(huán)去取,沒(méi)試過(guò),要么使用next(list_itrator)取,可以拿到第一個(gè)子標(biāo)簽<img>
然后拿到src的值:src = next(list_itrator)['src']
當(dāng)然如果標(biāo)簽是成對(duì)的,直接使用find('img')
注:
使用BeautifulSoup,以后所有返回帶有標(biāo)簽內(nèi)容的對(duì)象都是BeautifulSoup對(duì)象(個(gè)人理解)
如果要分析的內(nèi)容太多,可以將需要的字符串內(nèi)容截取到合適的地方,因?yàn)锽eautifulSoup解析實(shí)在是太耗時(shí)間了,雖然方便

網(wǎng)站標(biāo)題:小白,BeautifulSoup初步整理,后續(xù)添加
本文路徑:http://muchs.cn/article18/ippddp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供服務(wù)器托管、小程序開發(fā)網(wǎng)站維護(hù)、用戶體驗(yàn)虛擬主機(jī)、移動(dòng)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

小程序開發(fā)