欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Python爬蟲必備之Xpath簡介及實(shí)例講解

 更新時(shí)間:2022年04月26日 10:42:03   作者:夢然網(wǎng)絡(luò)  
xpath是一種在XML文檔中定位元素的語言,常用于xml、html文件解析,比css選擇器使用方便,下面這篇文章主要給大家介紹了關(guān)于Python爬蟲必備之Xpath簡介及實(shí)例的相關(guān)資料,需要的朋友可以參考下

前言

網(wǎng)上已經(jīng)有很多大佬發(fā)過Xpath,而且講的都很好,我是因?yàn)閯傞_始學(xué)習(xí)網(wǎng)絡(luò)爬蟲,對這些基礎(chǔ)重要知識不太了解,所以寫一下來加深印象,本篇文章只是簡單介紹一下Xpath及使用,總體來說比較基礎(chǔ)。

一、Xpath簡介

XPath(XML Path Language - XML路徑語言),它是一種用來確定XML文檔中某部分位置的語言。

Xpath以XML為基礎(chǔ),提供用戶在數(shù)據(jù)結(jié)構(gòu)樹中尋找節(jié)點(diǎn)的能力,Xpath被很多開發(fā)者親切的稱為小型查詢語言。

二、Xpath語法規(guī)則

xpath可以使用路徑表達(dá)式在XML上選取節(jié)點(diǎn),從而達(dá)到確認(rèn)元素的目的,我們先來介紹以下語法規(guī)則。

語法規(guī)則

表達(dá)式作用
nodename選取此層級節(jié)點(diǎn)下的所有子節(jié)點(diǎn)
/代表從根節(jié)點(diǎn)進(jìn)行選取
//可以理解為匹配,就是在所有節(jié)點(diǎn)中選取此節(jié)點(diǎn),直到匹配為止
.選取當(dāng)前節(jié)點(diǎn)
選取當(dāng)前節(jié)點(diǎn)上一層(上一級目錄)
@選取屬性(也是匹配)

標(biāo)簽定位

方式效果
/html/body/div表示從根節(jié)點(diǎn)開始尋找,標(biāo)簽與標(biāo)簽之間/表示一個(gè)層級
/html//div表示多個(gè)層級 作用于兩個(gè)標(biāo)簽之間(也可以理解為在html下進(jìn)行匹配尋找標(biāo)簽div)
//div從任意節(jié)點(diǎn)開始尋找,也就是查找所有的div標(biāo)簽
./div表示從當(dāng)前的標(biāo)簽開始尋找div

屬性定位

需求格式
定位div中屬性名為href,屬性值為‘www.baidu.com’的div標(biāo)簽@屬性名=屬性值
href為屬性名 'www.baidu.com’為屬性值/html/body/div[href=‘www.baidu.com’]

索引定位

需求格式
定位ul下第二個(gè)li標(biāo)簽(下圖)//ul/li[2]
索引值開始位置為1

取文本內(nèi)容

方法效果
/text()獲取標(biāo)簽下直系的標(biāo)簽內(nèi)容
//text()獲取標(biāo)簽中所有的文本內(nèi)容
string()獲取標(biāo)簽中所有的文本內(nèi)容

在網(wǎng)頁上獲取Xpath其實(shí)很容易,直接找到標(biāo)簽后,右鍵復(fù)制就好了。

三、語法規(guī)則練習(xí)

接下來我們開始練習(xí)一下本地導(dǎo)入,加深一下理解,這個(gè)是一個(gè)比較簡單的網(wǎng)頁結(jié)構(gòu),我們先學(xué)會(huì)用法即可。

任務(wù)要求: 可以達(dá)到隨心所欲的定位每一個(gè)元素

準(zhǔn)備工作

#導(dǎo)入所需要的包
from lxml import etree
#采用本地源碼獲取方式并加載到etree內(nèi)
tree = etree.parse('test.html')

1.獲取百度、谷歌、搜狗文本內(nèi)容

#引用xpath方法并進(jìn)行標(biāo)簽定位
#''.join是取字符串內(nèi)的內(nèi)容
text = ' '.join(tree.xpath('/html/body/ul/li/a/text()'))
print(text)

2.獲取單個(gè)谷歌

text1 = tree.xpath("http://ul/li[2]/a/text()")[0]
print(text1)

3.獲取北京、上海、天津的屬性值

text2 = ' '.join(tree.xpath("http://ol/li/a/@href"))
print(text2)

4.獲取河南文本

#獲取河南文本
text3 = tree.xpath("/html/body/div[2]/text()")[0]
print(text3)

5.獲取谷歌屬性值

text4 = tree.xpath("http://ul/li[2]/a/@href")[0]
print(text4)

至此我們已經(jīng)可以隨心定位任意標(biāo)簽 完成任務(wù) 收工

總結(jié)

到此這篇關(guān)于Python爬蟲必備之Xpath簡介及實(shí)例的文章就介紹到這了,更多相關(guān)Python爬蟲Xpath實(shí)例內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python如何從列表中刪除相鄰和不相鄰的相同元素

    Python如何從列表中刪除相鄰和不相鄰的相同元素

    這篇文章主要介紹了Python如何從列表中刪除相鄰和不相鄰的相同元素問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • 基于python中__add__函數(shù)的用法

    基于python中__add__函數(shù)的用法

    今天小編就為大家分享一篇基于python中__add__函數(shù)的用法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • 用Python自動(dòng)清理電腦內(nèi)重復(fù)文件,只要10行代碼(自動(dòng)腳本)

    用Python自動(dòng)清理電腦內(nèi)重復(fù)文件,只要10行代碼(自動(dòng)腳本)

    這篇文章主要介紹了用Python自動(dòng)清理電腦內(nèi)重復(fù)文件,只要10行代碼,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • python自定義異常實(shí)例詳解

    python自定義異常實(shí)例詳解

    這篇文章主要介紹了python自定義異常實(shí)例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-07-07
  • Python 階乘詳解

    Python 階乘詳解

    這篇文章主要介紹了詳解用python的階乘,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2021-10-10
  • Python中的min及返回最小值索引的操作

    Python中的min及返回最小值索引的操作

    這篇文章主要介紹了Python中的min及返回最小值索引的操作,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-05-05
  • python與pycharm有何區(qū)別

    python與pycharm有何區(qū)別

    在本篇文章里小編給大家整理了關(guān)于pycharm與python的區(qū)別相關(guān)內(nèi)容,有需要的朋友們可以學(xué)習(xí)下。
    2020-07-07
  • Python使用redis pool的一種單例實(shí)現(xiàn)方式

    Python使用redis pool的一種單例實(shí)現(xiàn)方式

    這篇文章主要介紹了Python使用redis pool的一種單例實(shí)現(xiàn)方式,結(jié)合實(shí)例形式分析了Python操作redis模塊實(shí)現(xiàn)共享同一個(gè)連接池的相關(guān)技巧,需要的朋友可以參考下
    2016-04-04
  • 詳解Python如何查看一個(gè)函數(shù)的參數(shù)

    詳解Python如何查看一個(gè)函數(shù)的參數(shù)

    inspect模塊提供了許多用于檢查對象的工具函數(shù),其中包括用于獲取函數(shù)參數(shù)信息的函數(shù),所以在Python中,大家可以使用inspect模塊來查看一個(gè)函數(shù)的參數(shù)信息,本文就來和大家講講具體操作吧
    2023-05-05
  • python中如何使用樸素貝葉斯算法

    python中如何使用樸素貝葉斯算法

    本文主要介紹了python中如何使用樸素貝葉斯算法的相關(guān)知識。具有很好的參考價(jià)值。下面跟著小編一起來看下吧
    2017-04-04

最新評論