日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

Xpath工具使用教程

 AS400r 2018-01-08

八爪魚有個(gè)Xpath工具,可以幫助大家寫Xpath一些簡(jiǎn)單的Xpath

位置:除了打開網(wǎng)頁步驟沒有Xpath工具以外,其他步驟都有,一般在自定義里,

點(diǎn)擊試試Xpath工具就可以打開

先介紹一下Xpath工具的界面



左上是填寫網(wǎng)址

左中是瀏覽器

左下是網(wǎng)頁源碼

但是Xpath工具的網(wǎng)頁源碼層次不分明,不太好看

查看網(wǎng)頁源碼這部分還是火狐的firepath比較好用

火狐和一些基本Xpath用法在官網(wǎng)Xpath教程里有教

http://www./tutorial?tag=xpath


右上是定位參數(shù)(工具將根據(jù)你填寫的參數(shù)生成Xpath

右下是點(diǎn)擊生成后生成的Xpath


然后我們來看一下定位參數(shù)

元素標(biāo)簽名稱:火狐里所有的藍(lán)色字體就是元素標(biāo)簽名稱,如下:span, a, hr, br等,具體你要填什么就要到火狐里看你要定位的那行代碼的最前面的藍(lán)色字體是什么,這里就寫什么,火狐里看得比較清楚。

元素位置:默認(rèn)填了1,這個(gè)位置的意思就是第幾個(gè),一般沒什么用,因?yàn)榛鸷镒詣?dòng)生成的Xpath很多都是用位置定位的,要用這個(gè)不如用火狐生成來得快

元素ID屬性值,元素name屬性值,元素class屬性值:

屬性值就是一行源碼內(nèi)用<>尖括號(hào)括起來的參數(shù),會(huì)有很多,不定

這里的三個(gè)屬性值是大部分網(wǎng)頁都會(huì)有的屬性值,這里只有三種,但是生成后自己改也是可以的

例:

這行源碼里就有class屬性,href屬性,style屬性,type屬性,4個(gè)屬性

每個(gè)都可以用來定位,根據(jù)不同需要

如果要用class屬性值定位就直接把class=后面雙引號(hào)內(nèi)部的參數(shù)復(fù)制出來,粘到格子里按生成就會(huì)自動(dòng)生成以class屬性值定位的Xpath代碼

例:

如果想用href屬性值定位,也是將href=后面雙引號(hào)內(nèi)部的參數(shù)復(fù)制出來,隨便粘到一個(gè)屬性值里按生成,比如粘到class里,再把Xpath里的class改成href就可以了

例:

href=后面雙引號(hào)內(nèi)部的參數(shù)復(fù)制出來,隨便粘到一個(gè)屬性值里按生成,這時(shí)按匹配一般是什么也匹配不到的

然后要把class改成href就可以了匹配到了

可以把這串代碼復(fù)制到火狐里驗(yàn)證一下,結(jié)果是一樣的


元素文本:是火狐里的所有黑色字體,一般是會(huì)在網(wǎng)頁顯示出來我們可以直接看到的字體

如果要填這一格,填的必須是全部的文本,少一個(gè)空格標(biāo)點(diǎn)符號(hào),全角半角不一致都會(huì)導(dǎo)致定位不到,不過要是是純文字的那就沒問題

元素文本包含字符串:包含,顧名思義就是只要文本里有就會(huì)定位出來,不用管什么標(biāo)點(diǎn)符號(hào)空格

元素文本開始字符串:就是前幾個(gè)字,如果源碼里是以什么空格標(biāo)點(diǎn)符號(hào)之類的開頭的,如果這里沒寫,就定位不到


父元素,子元素,這兩個(gè)是對(duì)應(yīng)的,

前面元素,后面元素也是對(duì)應(yīng)的。

這里是看層級(jí)關(guān)系,火狐里看很清楚,避免混亂,我只截取一層關(guān)系

上圖為例diva的父元素,adiv的子元素

前面元素和后面元素說的是同級(jí)里的多個(gè)元素之間的關(guān)系

比如上圖的中間那個(gè)span為主,它的前面元素就是a,它的后面元素是span


這幾個(gè)按鈕的主要功能是用于想要的數(shù)據(jù)沒有可定位的參數(shù),或者有參數(shù)但是不可用的時(shí)候,要用先定位到要的數(shù)據(jù)附近,再看是前后關(guān)系,還是父子關(guān)系,定位到想要的數(shù)據(jù)


定位的路有很多條,這條走不通就換一條,大多數(shù)都可以的


好了,界面基礎(chǔ)知識(shí)就講完了

我們來看實(shí)例吧。


實(shí)例一:

http://data.eastmoney.com/bbsj/201506/yjyg.html

翻頁死循環(huán)

一般八爪魚自動(dòng)生成的Xpath是定位文本,就是下面這張圖,前面翻頁都正常

但是它到最后一頁時(shí)依然可以定位到下一頁

八爪魚就會(huì)一直點(diǎn)一直采,死循環(huán)了

現(xiàn)在要觀察網(wǎng)頁源碼

39頁的下一頁與40頁的下一頁代碼有什么不同

可以發(fā)現(xiàn),最后一頁的時(shí)候比前一頁,多了class屬性和少了title屬性,這樣看最簡(jiǎn)單的就有兩條路可以走,用class或者用title都可以。


先復(fù)制八爪魚里自動(dòng)生成的下一頁代碼,但是如果八爪魚生成不是文本定位的就要自己生成一下

定位到下一頁了

再加class,最后一頁才有class,前面沒有,那我的Xpath就是不存在class的下一頁,不存在不會(huì)寫,那就換title吖,就是存在title的下一頁,這個(gè)簡(jiǎn)單

隨便點(diǎn)一個(gè)屬性值,因?yàn)槲覀冎灰?/font>title就行了,不用限定屬性值,屬性值為空,點(diǎn)生成,就是上圖,

class改成title,=''和中間的*號(hào)都去掉,匹配一下,先看39頁可以匹配到

然后翻到40頁,最后一頁

匹配不到,就對(duì)了,在最后一頁不能讓它定位到下一頁,定位到了八爪魚就會(huì)一直翻,這條Xpath替換掉循環(huán)翻頁的Xpath就可以了



實(shí)例二:

http://data./p2p/index.html

沒有下一頁,但是當(dāng)前頁有標(biāo)識(shí),每次定位到當(dāng)前頁的下一頁即可正常翻頁

首先觀察網(wǎng)頁及源碼,網(wǎng)頁可以看到當(dāng)前頁碼是標(biāo)綠的,一般來說要顯示綠色就要在源碼里寫特定的參數(shù)

我們看源碼就可以看到,當(dāng)前頁liclass參數(shù)的屬性值是active,其他頁的liclass參數(shù)的屬性值是空的,我們就可以用active為標(biāo)識(shí)先定位到當(dāng)前頁,再定位當(dāng)前頁的后一個(gè)頁碼,放到翻頁點(diǎn)擊元素里就會(huì)每次點(diǎn)擊當(dāng)前頁的后一頁,實(shí)現(xiàn)翻頁。

Xpath工具里把知道的參數(shù)都填進(jìn)去,定位到當(dāng)前頁碼,

點(diǎn)后面元素

定義后面第一個(gè)li

再向下定位到li內(nèi)的第一個(gè)a


因?yàn)?/font>ali的子元素,所以需要用/隔開

一般的網(wǎng)站可能寫到這里就可以了
但是這個(gè)網(wǎng)站還可以匹配到3個(gè)元素,如果要的數(shù)據(jù)是第一個(gè)也沒問題,但是實(shí)際上這個(gè)Xpath在這個(gè)網(wǎng)站正確的元素應(yīng)該是第三個(gè),所以還需要進(jìn)一步定位

一種方法是找不同定位條件,增加定位條件

一種方法是先縮小定位范圍,在頁碼范圍內(nèi)找我們剛才寫的Xpath

當(dāng)然還有很多方法,條條大路通羅馬,根據(jù)你日漸對(duì)Xpath的熟悉還會(huì)有更多的方法

這里就不一一列舉了

找不同定位條件,增加定位條件:其實(shí)這方法就是跟實(shí)例二一樣,結(jié)合起來就可以了

我們來看一下“先縮小定位范圍,在頁碼范圍內(nèi)找我們剛才寫的Xpath”這個(gè)辦法這個(gè)方法很簡(jiǎn)單,在火狐里就可以完成了

先生成一個(gè)頁碼范圍內(nèi)的Xpath

從后到前一層一層的刪掉,就可以擴(kuò)大選擇范圍,下圖就是已經(jīng)擴(kuò)大到我們需要的包含全部的頁碼范圍了

再把剛剛在Xpath工具里生成的Xpath接到后面去,就只定位到一個(gè)元素了,自己做好可以多翻幾頁看看是不是定位到當(dāng)前頁的后面一個(gè)頁碼,沒問題就可以把這條Xpath粘到八爪魚里了。




以上,以后有適合的實(shí)例再增加,謝謝!

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多