新聞中心
form bs4 import BeautifulSoup
要導入bs4模塊
注意BeautifulSoup大小寫
soup = BeautifulSoup('html','html.parser')
第一個參數(shù)html為要解析的html文檔,html是字符串
解析到soup中后才可以開始使用
soup中用的比較多的方法為find_all()
用法有:
soup.find_all('a')//找出所有的a標簽中的內(nèi)容,返回的是一個數(shù)組,數(shù)組中的每個元素又是BeautifulSoup對象
find_all()中還可以加屬性查詢,如:soup.findall('a',class=''),如果有多個,可以soup.findall('a',class=['c1','c2']),class_中的內(nèi)容為樣式,只要查找的內(nèi)容中有其中一個樣式就行
如:
s = '''aaaaaaa
'''
這里面的都可以找出來
還有一種寫法:
soup.find_all('a',attrs={'class':re.compile('')}),使用正則表達式,
拿到查找內(nèi)容后,如果要解析標簽中的內(nèi)容
find_all()要循環(huán)取
假設(shè)拿到其中一個,以a標簽為例
拿到的a1 = ''
拿鏈接:href = a1['href']
拿標簽中的內(nèi)容:content = a1.string
BeautifulSoup中還有find方法,用法與find_all()一樣,只是該方法只取第一個符合條件的
注:如果標簽不是成對的,如:
此時,你用find('img')是拿不到img標簽的,你需要取到他的上級成對標簽span
然后在解析span標簽中的內(nèi)容,如
span = soup.find('span'),假設(shè)拿到的是''
此時你需要解析他的子標簽,使用children屬性
span.children
此時返回的結(jié)果是list_itrator對象,要么使用for循環(huán)去取,沒試過,要么使用next(list_itrator)取,可以拿到第一個子標簽
然后拿到src的值:src = next(list_itrator)['src']
當然如果標簽是成對的,直接使用find('img')
注:
使用BeautifulSoup,以后所有返回帶有標簽內(nèi)容的對象都是BeautifulSoup對象(個人理解)
如果要分析的內(nèi)容太多,可以將需要的字符串內(nèi)容截取到合適的地方,因為BeautifulSoup解析實在是太耗時間了,雖然方便
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。
網(wǎng)頁題目:小白,BeautifulSoup初步整理,后續(xù)添加-創(chuàng)新互聯(lián)
本文地址:http://fisionsoft.com.cn/article/cspcie.html