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