日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

04 Python爬蟲之Beautiful Soup庫

系統(tǒng) 2167 0

目錄

  • Beautiful Soup庫的安裝
    • Beautiful Soup庫的安裝小測
    • Beautiful Soup庫使用格式
  • Beautiful Soup庫的基本元素
    • Beautiful Soup庫的理解
    • Beautiful Soup庫的引用
    • BeautifulSoup類
    • Beautiful Soup庫解析器
    • BeautifulSoup類的基本元素
      • Tag標(biāo)簽
      • Tag的name(名字)
      • Tag的attrs(屬性)
      • Tag的NavigableString
      • Tag的Comment
  • 基于bs4庫的HTML內(nèi)容遍歷方法
    • 標(biāo)簽樹的下行遍歷
    • 標(biāo)簽樹的上行遍歷
    • 標(biāo)簽樹的平行遍歷
  • 基于bs4庫的HTML格式輸出
    • bs4庫的prettify()方法
    • bs4庫的編碼

Beautiful Soup庫的安裝

Win平臺(tái): 以管理員身份運(yùn)行

cmd 執(zhí)行 pip install beautifulsoup4

Beautiful Soup庫的安裝小測

  • 首先,獲取網(wǎng)頁源碼保存至變量中
          
            import requests
r = requests.get("https://python123.io/ws/demo.html")
demo = r.text
          
        
  • 其次,引入Beautiful Soup庫。 from bs4 import BeautifulSoup
  • 使用Beautiful Soup庫的html解析器對(duì)網(wǎng)頁源碼進(jìn)行解析。得到結(jié)果
  • 通過prettify()方法進(jìn)行顯示
          
            from bs4 import BeautifulSoup
soup = BeautifulSoup(demo, "html.parser")   # 使用html解析器進(jìn)行解析
print(soup.prettify())  # 打印解析后的結(jié)果
          
        

Beautiful Soup庫使用格式

from bs4 import BeautifulSoup
soup = BeautifulSoup('

data

','html.parser')

Beautiful Soup庫的基本元素

Beautiful Soup庫的理解

Beautiful Soup庫是解析、遍歷、維護(hù)“標(biāo)簽樹”的功能庫

Beautiful Soup庫的引用

Beautiful Soup庫,也叫beautifulsoup4 或bs4 約定引用方式如下,即主要是用BeautifulSoup類

from bs4 import BeautifulSoup importbs4

BeautifulSoup類

BeautifulSoup對(duì)應(yīng)一個(gè)HTML/XML文檔的全部內(nèi)容

Beautiful Soup庫解析器

soup=BeautifulSoup('data', 'html.parser' )

解析器 使用方法 條件
bs4的HTML解析器 BeautifulSoup(mk,'html.parser') 安裝bs4庫
lxml的HTML解析 BeautifulSoup(mk,'lxml') pip install lxml
lxml的XML解析 BeautifulSoup(mk,'xml') pip install lxml
html5lib的解析 BeautifulSoup(mk,'html5lib') pip install html5lib

BeautifulSoup類的基本元素

基本元素 說明
Tag 標(biāo)簽,最基本的信息組織單元,分別用<>和標(biāo)明開頭和結(jié)尾
Name 標(biāo)簽的名字,

的名字是'p',格式: .name
Attributes 標(biāo)簽的屬性,字典形式組織,格式: .attrs
NavigableString 標(biāo)簽內(nèi)非屬性字符串,<>…中字符串,格式: .string
Comment 標(biāo)簽內(nèi)字符串的注釋部分,一種特殊的Comment類型

Tag標(biāo)簽

任何存在于HTML語法中的標(biāo)簽都可以用soup. 訪問獲得 當(dāng)HTML文檔中存在多個(gè)相同 對(duì)應(yīng)內(nèi)容時(shí),soup. 返回第一個(gè)

Tag的name(名字)

每個(gè) 都有自己的名字,通過 .name獲取,字符串類型

Tag的attrs(屬性)

一個(gè) 可以有0或多個(gè)屬性,字典類型

Tag的NavigableString

NavigableString可以跨越多個(gè)層次

Tag的Comment

Comment是一種特殊類型

基于bs4庫的HTML內(nèi)容遍歷方法

HTML基本格式

04 Python爬蟲之Beautiful Soup庫_第1張圖片

標(biāo)簽樹的下行遍歷

BeautifulSoup類型是標(biāo)簽樹的根節(jié)點(diǎn)

屬性 說明
.contents 子節(jié)點(diǎn)的列表,將 所有兒子節(jié)點(diǎn)存入列表
.children 子節(jié)點(diǎn)的迭代類型,與.contents類似,用于循環(huán)遍歷兒子節(jié)點(diǎn)
.descendants 子孫節(jié)點(diǎn)的迭代類型,包含所有子孫節(jié)點(diǎn),用于循環(huán)遍歷
          
            for child?in soup.body.children:    # 遍歷兒子節(jié)點(diǎn)
    print(child)
for child?in soup.body.descendants: # 遍歷子孫節(jié)點(diǎn)
    print(child)
          
        

標(biāo)簽樹的上行遍歷

屬性 說明
.parent 節(jié)點(diǎn)的父親標(biāo)簽
.parents 節(jié)點(diǎn)先輩標(biāo)簽的迭代類型,用于循環(huán)遍歷先輩節(jié)點(diǎn)

標(biāo)簽樹的平行遍歷

屬性 說明
.next_sibling 返回按照HTML文本順序的下一個(gè)平行節(jié)點(diǎn)標(biāo)簽
.previous_sibling 返回按照HTML文本順序的上一個(gè)平行節(jié)點(diǎn)標(biāo)簽
.next_siblings 迭代類型,返回按照HTML文本順序的后續(xù)所有平行節(jié)點(diǎn)標(biāo)簽
.previous_siblings 迭代類型,返回按照HTML文本順序的前續(xù)所有平行節(jié)點(diǎn)標(biāo)簽

04 Python爬蟲之Beautiful Soup庫_第2張圖片

          
            for sibling?in soup.a.next_sibling:     # 遍歷后續(xù)節(jié)點(diǎn)
    print(sibling)
for sibling?in soup.a.previous_sibling: # 遍歷前續(xù)節(jié)點(diǎn)
    print(sibling)
          
        

基于bs4庫的HTML格式輸出

能否讓HTML內(nèi)容更加“友好”的顯示?

bs4庫的prettify()方法

.prettify()為HTML文本<>及其內(nèi)容增加更加'\n'

.prettify()可用于標(biāo)簽,方法: .prettify()

bs4庫的編碼

bs4庫將任何HTML輸入都變成utf‐8編碼 Python 3.x默認(rèn)支持編碼是utf‐8,解析無障礙


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長非常感激您!手機(jī)微信長按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫作最大的動(dòng)力,如果您喜歡我的文章,感覺我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 宁国市| 砚山县| 兴城市| 成武县| 峡江县| 额尔古纳市| 登封市| 南乐县| 西平县| 张家口市| 高雄县| 苍溪县| 农安县| 老河口市| 安达市| 梁平县| 黔东| 常山县| 乐山市| 巧家县| 库尔勒市| 光山县| 平远县| 慈利县| 大悟县| 惠水县| 泾源县| 塔城市| 马边| 临夏市| 图木舒克市| 弥勒县| 宝丰县| 驻马店市| 望奎县| 拉萨市| 鸡西市| 平谷区| 合作市| 蚌埠市| 岑巩县|