這篇文章主要介紹了Python中bs4有什么用,具有一定借鑒價(jià)值,感興趣的朋友可以參考下,希望大家閱讀完這篇文章之后大有收獲,下面讓小編帶著大家一起了解一下。
成都創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),蕭山企業(yè)網(wǎng)站建設(shè),蕭山品牌網(wǎng)站建設(shè),網(wǎng)站定制,蕭山網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,蕭山網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。bs4(Beautiful Soup)是一個(gè)可以從HTML或XML文件中提取數(shù)據(jù)的Python庫(kù) 它能夠通過你喜歡的轉(zhuǎn)換器實(shí)現(xiàn)慣用的文檔導(dǎo)航,查找,修改文檔的方式 Beautiful Soup會(huì)幫你節(jié)省數(shù)小時(shí)甚至數(shù)天的工作時(shí)間
BeautifulSoup是bs4中非常重要的一個(gè)類 它利用html或xml文件快速生一個(gè)對(duì)象 我們可以借用該對(duì)象的方法和屬性快速獲取我們需要的數(shù)據(jù) 用法: BeatifulSoup(html, resolver) 解析器的選擇,根據(jù)不同的需求選擇響應(yīng)的解析器
首先來看一段測(cè)試代碼:
import bs4 import requests # html測(cè)試代碼 #只包含一個(gè)div標(biāo)簽 #div中包含一個(gè)p標(biāo)簽,一段文本 和 一段注釋 html ='' # 利用html字符串實(shí)例化BeautifulSoup對(duì)象 soup = bs4.BeautifulSoup(html,'html.parser') # 利用.div的方式訪問節(jié)點(diǎn) print(type(soup.div),'--->',soup.div) # 利用.class的方式訪問屬性 # 打印div節(jié)點(diǎn)中的元素和類型 for item in soup.div: print(type(item),'--->',item)p標(biāo)簽文本
div中文本
顯示結(jié)果:
Beautiful Soup將復(fù)雜HTML文檔轉(zhuǎn)換成一個(gè)復(fù)雜的樹形結(jié)構(gòu) 每個(gè)節(jié)點(diǎn)都是Python對(duì)象 所有對(duì)象可以歸納為4種 Tag , NavigableString , BeautifulSoup , Comment . >Tag對(duì)象 html文檔中每一個(gè)標(biāo)簽都會(huì)在BeautifulSoup中以Tag形式出現(xiàn) Tag中可以包含其他的Tag和其他部分對(duì)象 Tag具有許多的屬性,可以用于訪問標(biāo)簽或其子標(biāo)簽的屬性和文本等 例如: Tag.name返回標(biāo)簽名 Tag.string返回標(biāo)簽中的文本信息(Tag僅包含一個(gè)文本時(shí),多個(gè)用strings) Tag中的屬性通過賦值修改,會(huì)改動(dòng)相應(yīng)html文件中標(biāo)簽 >NavigableString對(duì)象 Tag中的字符串用NavigableString對(duì)象來包裝 作為字符串不能被直接編輯,但可以用replace()替換 在BeautifulSoup外調(diào)用需使用unicode()方法 >BeautifulSoup對(duì)象 包含一個(gè)文檔的全部?jī)?nèi)容 大多數(shù)情況下可以看作是一個(gè)大的Tag對(duì)象,支持遍歷和搜索文檔樹 >Comment 對(duì)象 Comment對(duì)象是一個(gè)特殊的NavigableString對(duì)象 用來包裝文檔中的注釋和特殊字符串等
find和findall方法 適用對(duì)象:Tag BeautifulSoup find會(huì)返回滿足條件的第一個(gè)節(jié)點(diǎn) findall方法會(huì)以列表形式返回滿足匹配條件的所有節(jié)點(diǎn) Tag.find('a',) # 返回Tag中第一個(gè)a標(biāo)簽節(jié)點(diǎn) Tag.find('a',class_="hello") # 返回Tag中第一個(gè)class為"hello"的a標(biāo)簽 Tag.find_all('p',text='p標(biāo)簽文本') # 返回Tag中包含(string屬性為'p標(biāo)簽文本'的NavigableString節(jié)點(diǎn))的p標(biāo)簽
string,strings ,text 屬性和 get_text()方法 以上方法都可以用于獲取文本 適用對(duì)象: string 適用于bs4中的全體對(duì)象 (Tag BeautifulSoup NavigableString Comment) strings ,text , get_text() 適用于 Tag BeautifulSoup 區(qū)別: tag.strings返回一個(gè)生成器 可以迭代獲取tag節(jié)點(diǎn)及其子孫節(jié)點(diǎn)中所有的NavigableString節(jié)點(diǎn) 返回的是每一個(gè)元素類型都是NavigebleString節(jié)點(diǎn) tag.string 當(dāng)tag的子節(jié)點(diǎn)只包含一個(gè)NavigebleString節(jié)點(diǎn),返回該節(jié)點(diǎn) 當(dāng)tag只有一個(gè)子節(jié)點(diǎn)時(shí),返回該子節(jié)點(diǎn)的string屬性的返回值 此外均返回None tag.get_text()返回一個(gè)字符串 用于捕獲該節(jié)點(diǎn)的所有子孫節(jié)點(diǎn)中的非注釋文本(即NavigebleString節(jié)點(diǎn)的string返回值) tag.text 在bs4源碼中text是接收get_text()返回值的變量 等同于tag.get_text()
感謝你能夠認(rèn)真閱讀完這篇文章,希望小編分享的“Python中bs4有什么用”這篇文章對(duì)大家有幫助,同時(shí)也希望大家多多支持創(chuàng)新互聯(lián),關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,更多相關(guān)知識(shí)等著你來學(xué)習(xí)!
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。