目錄
-
一、信息標(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ù)
JSON格式數(shù)據(jù)
YAML格式數(shù)據(jù)
二、信息標(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鏈接
思路:
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é):
更多文章、技術(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ì)您有幫助就好】元
