主頁 > 知識(shí)庫(kù) > python爬蟲學(xué)習(xí)筆記--BeautifulSoup4庫(kù)的使用詳解

python爬蟲學(xué)習(xí)筆記--BeautifulSoup4庫(kù)的使用詳解

熱門標(biāo)簽:外呼并發(fā)線路 ai電銷機(jī)器人源碼 ai電話機(jī)器人哪里好 宿遷星美防封電銷卡 百度地圖標(biāo)注沒有了 長(zhǎng)沙高頻外呼系統(tǒng)原理是什么 地圖標(biāo)注審核表 湛江智能外呼系統(tǒng)廠家 西藏房產(chǎn)智能外呼系統(tǒng)要多少錢

使用范例

from bs4 import BeautifulSoup
#創(chuàng)建 Beautiful Soup 對(duì)象
# 使用lxml來進(jìn)行解析
soup = BeautifulSoup(html,"lxml")
print(soup.prettify())

返回結(jié)果

常用的對(duì)象–Tag

就是 HTML 中的一個(gè)個(gè)標(biāo)簽

在上面范例的基礎(chǔ)上添加

from bs4 import BeautifulSoup
#創(chuàng)建 Beautiful Soup 對(duì)象
# 使用lxml來進(jìn)行解析
soup = BeautifulSoup(html,"lxml")
#print(soup.prettify())


#創(chuàng)建 Beautiful Soup 對(duì)象
soup = BeautifulSoup(html,'lxml')

print (soup.title)#None因?yàn)檫@里沒有tiele標(biāo)簽所以返回none

print (soup.head)#None因?yàn)檫@里沒有head標(biāo)簽所以返回none

print (soup.a)#返回 a class="fill-dec"  target="_blank">編輯自我介紹,讓更多人了解你span class="write-icon">/span>/a>


print (type(soup.p))#返回 class 'bs4.element.Tag'>

print( soup.p)

其中print( soup.p)

返回結(jié)果為


同樣地,在上面地基礎(chǔ)上添加

print (soup.name)# [document] #soup 對(duì)象本身比較特殊,它的 name 即為 [document]

返回

print (soup.head.name)#head #對(duì)于其他內(nèi)部標(biāo)簽,輸出的值為標(biāo)簽本身的名稱
print (soup.p.attrs)##把p標(biāo)簽的所有屬性打印出來,得到的類型是一個(gè)字典。

返回

print (soup.p['class'])#獲取P標(biāo)簽下地class標(biāo)簽
soup.p['class'] = "newClass"
print (soup.p) # 可以對(duì)這些屬性和內(nèi)容等等進(jìn)行修改

返回

常用的對(duì)象–NavigableString

前面地基礎(chǔ)上添加

print (soup.p.string)
# The Dormouse's story
print (type(soup.p.string))
# class 'bs4.element.NavigableString'>thon

返回結(jié)果

常用的對(duì)象–BeautifulSoup

beautiful soup對(duì)象表示文檔的全部?jī)?nèi)容。大多數(shù)情況下,它可以被視為標(biāo)記對(duì)象。它支持遍歷文檔樹并搜索文檔樹中描述的大多數(shù)方法因?yàn)锽eauty soup對(duì)象不是真正的HTML或XML標(biāo)記,所以它沒有名稱和屬性。但是,有時(shí)查看其內(nèi)容很方便。Name屬性,因此美麗的湯對(duì)象包含一個(gè)特殊屬性。值為“[文檔]”的名稱

print(soup.name)
#返回 '[document]'

常用的對(duì)象–Comment

用于解釋注釋部分的內(nèi)容

markup = "b>!--Hey, buddy. Want to buy a used parser?-->/b>"
soup = BeautifulSoup(markup)
comment = soup.b.string
type(comment)
# class 'bs4.element.Comment'>

對(duì)文檔樹的遍歷

在上面的基礎(chǔ)上添加

head_tag = soup.div
# 返回所有子節(jié)點(diǎn)的列表
print(head_tag.contents)

返回


同理

head_tag = soup.div

# 返回所有子節(jié)點(diǎn)的迭代器
for child in head_tag.children:
    print(child)

返回

tag中包含多個(gè)字符串的情況

可用 .strings 來循環(huán)獲取

for string in soup.strings:
    print(repr(string))

返回

.stripped_strings 去除空白內(nèi)容

for string in soup.stripped_strings:
    print(repr(string))

返回

搜索文檔樹–find和find_all

找到所有

print(soup.find_all("a",id='link2'))

find方法是找到第一個(gè)滿足條件的標(biāo)簽后立即返回,返回一個(gè)元素。find_all方法是把所有滿足條件的標(biāo)簽都選到,然后返回。

select方法(各種查找)

#通過標(biāo)簽名查找:
print(soup.select('a'))
#通過類名查找:
#通過類名,則應(yīng)該在類的前面加一個(gè)'.'
print(soup.select('.sister'))
#通過id查找:
#通過id查找,應(yīng)該在id的名字前面加一個(gè)#號(hào)
print(soup.select("#link1"))

查找a標(biāo)簽返回的結(jié)果


其他因?yàn)榫W(wǎng)頁本身沒有,返回的是一個(gè)空列表

組合查找

print(soup.select("p #link1"))#查找 p 標(biāo)簽中,id 等于 link1的內(nèi)容

子標(biāo)簽查找

print(soup.select("head > title"))

通過屬性查找

print(soup.select('a[))#屬性與標(biāo)簽屬同一節(jié)點(diǎn),中間不能有空格

獲取內(nèi)容

先查看類型

print (type(soup.select('div')))

for title in soup.select('div'):
    print (title.get_text())

返回

print (soup.select('div')[20].get_text())#選取第20個(gè)div標(biāo)簽的內(nèi)容

返回

總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注腳本之家的更多內(nèi)容!

您可能感興趣的文章:
  • Python BeautifulSoup基本用法詳解(通過標(biāo)簽及class定位元素)
  • python beautiful soup庫(kù)入門安裝教程
  • Python爬蟲進(jìn)階之Beautiful Soup庫(kù)詳解
  • python爬蟲beautifulsoup庫(kù)使用操作教程全解(python爬蟲基礎(chǔ)入門)
  • python網(wǎng)絡(luò)爬蟲精解之Beautiful Soup的使用說明

標(biāo)簽:普洱 林芝 漯河 盤錦 南平 寧夏 大同 海南

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《python爬蟲學(xué)習(xí)筆記--BeautifulSoup4庫(kù)的使用詳解》,本文關(guān)鍵詞  python,爬蟲,學(xué)習(xí),筆記,--BeautifulSoup4,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《python爬蟲學(xué)習(xí)筆記--BeautifulSoup4庫(kù)的使用詳解》相關(guān)的同類信息!
  • 本頁收集關(guān)于python爬蟲學(xué)習(xí)筆記--BeautifulSoup4庫(kù)的使用詳解的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章