python爬虫xpath教程_使用 Xpath 进行爬虫开发
使用 Xpath 進(jìn)行爬蟲開發(fā)
Xpath( XML Path Language, XML路徑語言),是一種在 XML 數(shù)據(jù)中查找信息的語言,現(xiàn)在,我們也可以使用它在 HTML 中查找需要的信息。
既然談到 Xpath 是一門語言,當(dāng)然它就會有自己的一些特定的語法。我們這里羅列一些經(jīng)常使用的語法,熟悉下面的基本語法之后,就能滿足我們?nèi)粘5呐老x開發(fā)所用。
本小節(jié)主要內(nèi)容:
Xpath的基本概念
Xpath的基本語法
Xpath實戰(zhàn)
學(xué)習(xí)目標(biāo):
熟練掌握常用的 Xpath 的基本操作
1. 開發(fā)前的準(zhǔn)備
前面我們介紹的 XPath 基本的語法和基本操作,下面我們通過 lxml 庫,來熟悉一下 XPath 的使用。
首先,我們需要一個測試文件,文件如下,文件名為 xpath_test.xml:
python itemjava itemC itemjava itemjava itemjava item2. 基本語法
2.1 節(jié)點之間的關(guān)系
父節(jié)點:每個元素都有一個父親節(jié)點;
子節(jié)點:每個元素節(jié)點可以有零個,一個或者多個父親節(jié)點;
兄弟節(jié)點:相同父親節(jié)點的節(jié)點;
先輩節(jié)點:一個元素的父親節(jié)點的父親節(jié)點;
后輩節(jié)點:一個元素的子節(jié)點的子節(jié)點。
表達(dá)式基本語法
表達(dá)式
功能簡介
node
選取node下面的所有的節(jié)點
/node
斜杠是代表絕對路徑,這個表達(dá)式語法的意思就是選擇根上的node
//node
選擇所有的node的節(jié)點,與XML的位置無關(guān)
.
選擇當(dāng)前節(jié)點
…
選擇當(dāng)前節(jié)點的父親節(jié)點
node/child
選取node子節(jié)點的所有的child元素
node//child
選取所有后備節(jié)點的chiid信息
//@href
選取所有的href的屬性
2.2 謂語與通配符
表達(dá)式
功能簡介
/books/python[1]
選取books子元素中的第一個python元素
/books/python[last()]
選取books子元素中的最后一個元素
/books/python[position()<10]
選取books子元素的前9個元素
.
選擇當(dāng)前節(jié)點
…
選擇當(dāng)前節(jié)點的父親節(jié)點
node/child
選取node子節(jié)點的所有的child元素
node//child
選取所有后備節(jié)點的chiid信息
//@href
選取所有的href的屬性
3. 開發(fā)案例
開發(fā)案例一:
從xml中查找出所有的’li’標(biāo)簽
from lxml import etree
emt = etree.parse('text.xml')
rst = emt.xpath('//li')
運行結(jié)果如下圖所示:
開發(fā)案例二:
從xml中查找出所有的’li’標(biāo)簽的所有class
from lxml import etree
emt = etree.parse('text.xml')
rst = emt.xpath('//li/@class')
運行結(jié)果如下圖所示:
開發(fā)案例三:
從xml中查找出所有的’li’標(biāo)簽下面的href為a.html的標(biāo)簽
from lxml import etree
emt = etree.parse('text.xml')
rst = emt.xpath('//li/a[@href="a.html"]')
運行結(jié)果如下圖所示:
4. 小結(jié)
XPath 是一種查詢語言,它是通過路徑來尋找相應(yīng)的信息,正如它的英文名稱 path 一樣,通過不同種X路徑,最終找到自己需要的信息。通過 XPath,我們不但可以搜索 XML,也可以搜索 HTML。
通過案例,我們基本熟悉了 XPath 的基本使用,這也為我們后面學(xué)習(xí) BeautifulSoup 打下了良好的基礎(chǔ),XPath 為我們從復(fù)雜的文檔中,快速定位信息提供了良好的支持,也為我們后面處理和整理爬蟲爬下來的信息奠定了根基。
原文地址:https://blog.csdn.net/q7825103/article/details/105379906
文章來源與用戶投稿或網(wǎng)絡(luò)采集,如果您是本文的作者,發(fā)現(xiàn)版權(quán)或轉(zhuǎn)載方式問題請右側(cè)郵箱聯(lián)系管理員。
670人推薦
總結(jié)
以上是生活随笔為你收集整理的python爬虫xpath教程_使用 Xpath 进行爬虫开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 安卓微信恢复大师是真的吗(安卓微信恢复大
- 下一篇: python编程能力等级测试_青少年编程