最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

前言

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

一、Xpath簡(jiǎn)介

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

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

二、Xpath語(yǔ)法規(guī)則

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

語(yǔ)法規(guī)則

表達(dá)式作用
nodename選取此層級(jí)節(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)上一層(上一級(jí)目錄)
@選取屬性(也是匹配)

標(biāo)簽定位

方式效果
/html/body/div表示從根節(jié)點(diǎn)開始尋找,標(biāo)簽與標(biāo)簽之間/表示一個(gè)層級(jí)
/html//div表示多個(gè)層級(jí) 作用于兩個(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)頁(yè)上獲取Xpath其實(shí)很容易,直接找到標(biāo)簽后,右鍵復(fù)制就好了。

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

接下來(lái)我們開始練習(xí)一下本地導(dǎo)入,加深一下理解,這個(gè)是一個(gè)比較簡(jiǎn)單的網(wǎng)頁(yè)結(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簡(jiǎn)介及實(shí)例的文章就介紹到這了,更多相關(guān)Python爬蟲Xpath實(shí)例內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Tensorflow的梯度異步更新示例

    Tensorflow的梯度異步更新示例

    今天小編就為大家分享一篇Tensorflow的梯度異步更新示例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來(lái)看看吧
    2020-01-01
  • pytorch中的reshape()、view()、nn.flatten()和flatten()使用

    pytorch中的reshape()、view()、nn.flatten()和flatten()使用

    這篇文章主要介紹了pytorch中的reshape()、view()、nn.flatten()和flatten()使用,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-08-08
  • Scrapy爬蟲Response子類在應(yīng)用中的問題解析

    Scrapy爬蟲Response子類在應(yīng)用中的問題解析

    這篇文章主要為大家介紹了Scrapy爬蟲Response它的子類(TextResponse、HtmlResponse、XmlResponse)在應(yīng)用問題解析
    2023-05-05
  • Pytest allure 命令行參數(shù)的使用

    Pytest allure 命令行參數(shù)的使用

    這篇文章主要介紹了Pytest allure 命令行參數(shù)的使用,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-04-04
  • 詳解Python數(shù)據(jù)分析--Pandas知識(shí)點(diǎn)

    詳解Python數(shù)據(jù)分析--Pandas知識(shí)點(diǎn)

    這篇文章主要介紹了Python數(shù)據(jù)分析--Pandas知識(shí)點(diǎn),文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03
  • Python?PDF轉(zhuǎn)化wolrd代碼的寫法小結(jié)

    Python?PDF轉(zhuǎn)化wolrd代碼的寫法小結(jié)

    將PDF文件轉(zhuǎn)換為Word文檔的過程通常需要使用一些外部庫(kù)來(lái)實(shí)現(xiàn),因?yàn)镻ython本身并不直接支持這種轉(zhuǎn)換,這篇文章主要介紹了Python?PDF轉(zhuǎn)化wolrd代碼的寫法小結(jié),需要的朋友可以參考下
    2024-06-06
  • selenium+headless chrome爬蟲的實(shí)現(xiàn)示例

    selenium+headless chrome爬蟲的實(shí)現(xiàn)示例

    這篇文章主要介紹了selenium+headless chrome爬蟲的實(shí)現(xiàn)示例,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • pytorch常用函數(shù)之torch.randn()解讀

    pytorch常用函數(shù)之torch.randn()解讀

    這篇文章主要介紹了pytorch常用函數(shù)之torch.randn()解讀,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • python使用tesseract實(shí)現(xiàn)字符識(shí)別功能

    python使用tesseract實(shí)現(xiàn)字符識(shí)別功能

    Tesseract 是一個(gè)開源的光學(xué)字符識(shí)別(OCR)引擎,它能夠識(shí)別多種語(yǔ)言的文本,可將掃描文檔、圖像中的文字提取并轉(zhuǎn)換為計(jì)算機(jī)可編輯的文本格式,本文給大家介紹了python使用tesseract實(shí)現(xiàn)字符識(shí)別功能,需要的朋友可以參考下
    2024-10-10
  • Python壓縮包處理模塊zipfile和py7zr操作代碼

    Python壓縮包處理模塊zipfile和py7zr操作代碼

    目前對(duì)文件的壓縮和解壓縮比較常用的格式就是zip格式和7z格式,這篇文章主要介紹了Python壓縮包處理模塊zipfile和py7zr,需要的朋友可以參考下
    2022-06-06

最新評(píng)論

南安市| 毕节市| 通渭县| 太白县| 江都市| 石嘴山市| 威远县| 普安县| 吉林省| 东光县| 平南县| 白水县| 和硕县| 清水河县| 木兰县| 曲阜市| 吕梁市| 佳木斯市| 唐河县| 郎溪县| 葫芦岛市| 土默特右旗| 嘉禾县| 罗甸县| 贺州市| 上高县| 望奎县| 丰台区| 平罗县| 和平县| 牙克石市| 乳源| 郁南县| 高邮市| 汝阳县| 贵阳市| 乐东| 吉林省| 颍上县| 潞西市| 金秀|