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

05 Python爬蟲之信息標(biāo)記與提取方法

系統(tǒng) 1903 0

目錄

  • 一、信息標(biāo)記的三種形式
    • XML格式數(shù)據(jù)
    • JSON格式數(shù)據(jù)
    • YAML格式數(shù)據(jù)
  • 二、信息標(biāo)記形式的比較
    • XML
    • JSON
    • YAML
  • 三、信息提取的一般方法
    • 方法一:
    • 方法二:
    • 融合方法:
  • 四、基于bs4庫(kù)的HTML內(nèi)容查找方法
    • 擴(kuò)展方法
  • 總結(jié):

一、信息標(biāo)記的三種形式

XML格式數(shù)據(jù)

05 Python爬蟲之信息標(biāo)記與提取方法_第1張圖片

JSON格式數(shù)據(jù)

05 Python爬蟲之信息標(biāo)記與提取方法_第2張圖片

YAML格式數(shù)據(jù)

05 Python爬蟲之信息標(biāo)記與提取方法_第3張圖片

二、信息標(biāo)記形式的比較

XML

  • 最早的通用信息標(biāo)記語(yǔ)言,可擴(kuò)展性好,但繁瑣。
  • Internet上的信息交互與傳遞

JSON

  • 信息有類型,適合程序處理(js),較XML簡(jiǎn)潔
  • 移動(dòng)應(yīng)用云端和節(jié)點(diǎn)的信息通信,無(wú)注釋、

YAML

  • 信息無(wú)類型,文本信息比例最高,可讀性好
  • 各類系統(tǒng)的配置文件,有注釋易讀

三、信息提取的一般方法

方法一:

  • 完整 解析信息 的標(biāo)記形式,再提取 關(guān)鍵信息

  • XML JSON YAML

    需要標(biāo)記解析器,例如:bs4庫(kù)的標(biāo)簽樹遍歷

  • 優(yōu)點(diǎn): 信息解析準(zhǔn)確

  • 缺點(diǎn): 提取過(guò)程繁瑣,速度慢

方法二:

  • 無(wú)視標(biāo)記形式, 直接搜索關(guān)鍵信息

  • 搜索

    對(duì)信息的文本查找函數(shù)即可

  • 優(yōu)點(diǎn): 提取過(guò)程簡(jiǎn)潔,速度較快

  • 缺點(diǎn): 提取結(jié)果準(zhǔn)確性與信息內(nèi)容相關(guān)

融合方法:

  • 融合方法:結(jié)合 形式解析 搜索 方法,提取關(guān)鍵信息

  • XML JSON YAML 搜索

    需要標(biāo)記解析器及文本查找函數(shù)

實(shí)例:

提取HTML中所有URL鏈接

思路:

  1. 搜索到所有 標(biāo)簽
  2. 解析 標(biāo)簽格式,提取href后的鏈接內(nèi)容
          
            import requests
r = requests.get("http://www.baidu.com")    # 得到response響應(yīng)數(shù)據(jù)
r.encoding = r.apparent_encoding            # 指定字符編碼
demo = r.text

import bs4
# 制作soup
soup = bs4.BeautifulSoup(demo,"html.parser")    # 要解析的內(nèi)容,html解析器
# 提取鏈接內(nèi)容
for link in soup.find_all("a"): # 查找所有a標(biāo)簽,并遍歷
    print(link.get("href"))     # 標(biāo)簽類型,搜索href標(biāo)簽后的鏈接內(nèi)容
          
        

四、基于bs4庫(kù)的HTML內(nèi)容查找方法

<>.find_all(name,attrs,recursive, string, **kwargs) 方法

返回一個(gè)列表類型,存儲(chǔ)查找的結(jié)果

  • name : 對(duì)標(biāo)簽名稱的檢索字符串
  • attrs: 對(duì)標(biāo)簽屬性值的檢索字符串,可標(biāo)注屬性檢索
  • recursive: 是否對(duì)子孫全部檢索,默認(rèn)True
  • string: <>…中字符串區(qū)域的檢索字符串

擴(kuò)展方法

方法 說(shuō)明
<>.find() 搜索且只返回一個(gè)結(jié)果,同.find_all()參數(shù)
<>.find_parents() 在先輩節(jié)點(diǎn)中搜索,返回列表類型,同.find_all()參數(shù)
<>.find_parent() 在先輩節(jié)點(diǎn)中返回一個(gè)結(jié)果,同.find()參數(shù)
<>.find_next_siblings() 在后續(xù)平行節(jié)點(diǎn)中搜索,返回列表類型,同.find_all()參數(shù)
<>.find_next_sibling() 在后續(xù)平行節(jié)點(diǎn)中返回一個(gè)結(jié)果,同.find()參數(shù)
<>.find_previous_siblings() 在前序平行節(jié)點(diǎn)中搜索,返回列表類型,同.find_all()參數(shù)
<>.find_previous_sibling() 在前序平行節(jié)點(diǎn)中返回一個(gè)結(jié)果,同.find()參數(shù)

總結(jié):

05 Python爬蟲之信息標(biāo)記與提取方法_第4張圖片


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

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

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

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

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

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

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 宁化县| 威宁| 东丽区| 安新县| 贵阳市| 开平市| 沙洋县| 察雅县| 西乡县| 万州区| 上栗县| 祁阳县| 南陵县| 新巴尔虎左旗| 崇礼县| 桦南县| 西乌珠穆沁旗| 珠海市| 盐池县| 土默特左旗| 南城县| 红桥区| 盘山县| 阆中市| 嘉峪关市| 泰安市| 香格里拉县| 吉安市| 兴和县| 托克托县| 大城县| 南京市| 嘉荫县| 河北省| 陆良县| 全南县| 固原市| 临安市| 乐都县| 原平市| 洛扎县|