Xpath和BS4操作

Xpath

  • Xpath是一種針對(duì)結(jié)構(gòu)化數(shù)據(jù)進(jìn)行數(shù)據(jù)匹配的描述語言
  • Xpath分析的目標(biāo)數(shù)據(jù):結(jié)構(gòu)化數(shù)據(jù)~標(biāo)記語言定義的數(shù)據(jù)[XML/HTML]
    • 基本語法:針對(duì)加載的網(wǎng)頁文檔/xml文檔,轉(zhuǎn)換成文檔書結(jié)構(gòu),在文檔中根據(jù)基本語法在局部進(jìn)行數(shù)據(jù)匹配的操作

基于index.html的查詢操作

代碼 作用
html 查詢所有html的子節(jié)點(diǎn)
/html 查詢根節(jié)點(diǎn)下的html節(jié)點(diǎn)

/->根節(jié)點(diǎn)~文檔對(duì)象模型~document

代碼 作用
//div 模糊匹配路徑,查詢所有路徑下出現(xiàn)的div節(jié)點(diǎn)
//div/* *模糊匹配節(jié)點(diǎn),查詢所有路徑下div的子節(jié)點(diǎn)
//div[@class] 查詢包含class屬性的所有div節(jié)點(diǎn)
//div[@class="content"] 查詢包含class屬性并且值為content的div節(jié)點(diǎn)
  • //div-->對(duì)象中包含的文本數(shù)據(jù)
    • xpath對(duì)象.xpath("string(.)")~查詢到節(jié)點(diǎn)中所有的文本[包含子節(jié)點(diǎn)的文本]
    • xpath對(duì)象.text~查詢節(jié)點(diǎn)中的文本[不包含子節(jié)點(diǎn)中的文本]
  • 實(shí)際操作
  • 通過工具進(jìn)行輔助,操作xpath進(jìn)行數(shù)據(jù)的匹配
  • 瀏覽器中的Xpath插件
    • 谷歌瀏覽器~Xpath Helper-->可以很方便在網(wǎng)頁中查詢對(duì)應(yīng)的數(shù)據(jù)
      • 新版本Xpath插件中-->打開網(wǎng)頁,打開Xpath插件,在網(wǎng)頁中鼠標(biāo)懸停在需要選中的文本上,按下shift按鍵,就會(huì)自動(dòng)出現(xiàn)xpath描述的信息,然后根據(jù)自己的需要進(jìn)行修改即可~!
  • python中怎么操作xpath
    • python中默認(rèn)沒有xpath操作模塊,但是有一個(gè)第三方模塊lxml可以對(duì)結(jié)構(gòu)化數(shù)據(jù)Xpath操作進(jìn)行非常友好的支持

Beautifulsoup4

  • bs4是一種對(duì)性能的要求,時(shí)間的限制相對(duì)較弱的一種爬取方式.

  • bs4爬取數(shù)據(jù)

# 四種種安裝方式
pip install beautifulsoup4
easy_install beautifulsoup4
# 下載tar.gz包 pip setup.py install
# 拷貝別人的bs4文件夾,知己復(fù)制到site-pakages/目錄下即可

# 從程序中引入bs4
from bs4 import BeautifulSoup

# 從網(wǎng)頁文件中直接加載
soup = BeautifulSoup(open("index.html"), "lxml")

print(soup)

三種爬取方式的對(duì)比

re xpath bs4
安裝 內(nèi)置 第三方 第三方
語法 正則 路徑匹配 面向?qū)ο?/td>
使用 困難 較困難 簡(jiǎn)單
性能 最高 適中 最低
  • ps: 以為爬蟲程序,一般情況下對(duì)于數(shù)據(jù)處理性能問題,設(shè)計(jì)較少,所以對(duì)于爬蟲采集數(shù)據(jù),篩選數(shù)據(jù)并沒有性能要求!(時(shí)間要求比較充裕)
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容