目錄
-
一、信息標記的三種形式
- XML格式數據
- JSON格式數據
- YAML格式數據
-
二、信息標記形式的比較
- XML
- JSON
- YAML
-
三、信息提取的一般方法
- 方法一:
- 方法二:
- 融合方法:
-
四、基于bs4庫的HTML內容查找方法
- 擴展方法
- 總結:
一、信息標記的三種形式
XML格式數據
JSON格式數據
YAML格式數據
二、信息標記形式的比較
XML
- 最早的通用信息標記語言,可擴展性好,但繁瑣。
- Internet上的信息交互與傳遞
JSON
- 信息有類型,適合程序處理(js),較XML簡潔
- 移動應用云端和節點的信息通信,無注釋、
YAML
- 信息無類型,文本信息比例最高,可讀性好
- 各類系統的配置文件,有注釋易讀
三、信息提取的一般方法
方法一:
-
完整 解析信息 的標記形式,再提取 關鍵信息
-
XML JSON YAML
需要標記解析器,例如:bs4庫的標簽樹遍歷
-
優點: 信息解析準確
-
缺點: 提取過程繁瑣,速度慢
方法二:
-
無視標記形式, 直接搜索關鍵信息
-
搜索
對信息的文本查找函數即可
-
優點: 提取過程簡潔,速度較快
-
缺點: 提取結果準確性與信息內容相關
融合方法:
-
融合方法:結合 形式解析 與 搜索 方法,提取關鍵信息
-
XML JSON YAML 搜索
需要標記解析器及文本查找函數
實例:
提取HTML中所有URL鏈接
思路:
import requests
r = requests.get("http://www.baidu.com") # 得到response響應數據
r.encoding = r.apparent_encoding # 指定字符編碼
demo = r.text
import bs4
# 制作soup
soup = bs4.BeautifulSoup(demo,"html.parser") # 要解析的內容,html解析器
# 提取鏈接內容
for link in soup.find_all("a"): # 查找所有a標簽,并遍歷
print(link.get("href")) # 標簽類型,搜索href標簽后的鏈接內容
四、基于bs4庫的HTML內容查找方法
<>.find_all(name,attrs,recursive, string, **kwargs)
方法
:
返回一個列表類型,存儲查找的結果
- name : 對標簽名稱的檢索字符串
- attrs: 對標簽屬性值的檢索字符串,可標注屬性檢索
- recursive: 是否對子孫全部檢索,默認True
- string: <>…中字符串區域的檢索字符串
擴展方法
方法 | 說明 |
---|---|
<>.find() | 搜索且只返回一個結果,同.find_all()參數 |
<>.find_parents() | 在先輩節點中搜索,返回列表類型,同.find_all()參數 |
<>.find_parent() | 在先輩節點中返回一個結果,同.find()參數 |
<>.find_next_siblings() | 在后續平行節點中搜索,返回列表類型,同.find_all()參數 |
<>.find_next_sibling() | 在后續平行節點中返回一個結果,同.find()參數 |
<>.find_previous_siblings() | 在前序平行節點中搜索,返回列表類型,同.find_all()參數 |
<>.find_previous_sibling() | 在前序平行節點中返回一個結果,同.find()參數 |
總結:
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
