如何較快寫出合適的xpath的小技巧

一,場(chǎng)景

用python寫爬蟲代碼時(shí),如下代碼中需要寫xpath路徑

圖中title_path,src_path 寫起來(lái)xlml比較繁瑣,每一層元素都需要寫出元素的屬性,

那有什么技巧可以方便的寫出xpath路徑呢

二,準(zhǔn)備工作

1,瀏覽器安裝Xpath helper?安裝教程鏈接

2,比如我們要提取豆瓣網(wǎng)上周星馳的所有電影名字網(wǎng)址

三,操作步驟

1,打開(kāi)網(wǎng)址,在瀏覽器中按F12? 進(jìn)入Chrome開(kāi)發(fā)者工具,可以查看原代碼,點(diǎn)擊如下圖,

?2, 點(diǎn)擊(或用者用快捷鍵Ctrl+Shift+C)進(jìn)入選擇元素模式,然后從頁(yè)面中選擇需要查看的元素,然后可以在開(kāi)發(fā)者工具元素(Elements)一欄中????定位到該元素源代碼的具體位置?。

3,我們的目標(biāo)是獲取所有的電影名字,用圖形選擇模式,選中其中一個(gè)電影如《喜劇之王》如,右側(cè)源代碼中自動(dòng)的的定位到該元素在lxml?位置上??

4,會(huì)得到:

/html/body/div[3]/div[1]/div/div[2]/div[1]/div[1]/div[5]/div/div/div[1]/a

可以觀察到這個(gè)xpath 是根據(jù)節(jié)點(diǎn)出現(xiàn)的順序依次寫出下個(gè)節(jié)點(diǎn)的

5,我們?cè)趤?lái)重復(fù)上個(gè)步驟工作,選擇另一個(gè)目標(biāo)《美人魚》的xpath定位

/html/body/div[3]/div[1]/div/div[2]/div[1]/div[1]/div[7]/div/div/div[1]/a

可以觀察到兩個(gè)xpath路徑非常對(duì)應(yīng),僅僅在中間的div[]的出現(xiàn)順序不同,那么我們可以在這個(gè)分叉的節(jié)點(diǎn)處理下?

6,可以觀察到從這個(gè)節(jié)點(diǎn)下,每個(gè)節(jié)點(diǎn)對(duì)應(yīng)這個(gè)網(wǎng)頁(yè)中每部電影的模塊,只要在這個(gè)節(jié)點(diǎn)修改元素表示方法即可,發(fā)現(xiàn)改節(jié)點(diǎn)的class屬性較長(zhǎng),不屬于常規(guī)的特征值,但我們可以觀察其子節(jié)點(diǎn)的關(guān)系

每個(gè)子元素的屬性相同,且是比較好的特征。

/html/body/div[3]/div[1]/div/div[2]/div[1]/div[1]/div[5]/div/div/div[1]/a

/html/body/div[3]/div[1]/div/div[2]/div[1]/div[1]/div[7]/div/div/div[1]/a

修改如下:

/html/body/div[3]/div[1]/div/div[2]/div[1]/div[1]//div[@class="item-root"]/div/div[1]/a

注意使用? ”//“

7,啟動(dòng)xpath helper 驗(yàn)證,將修改的節(jié)點(diǎn)復(fù)制到框中,觀察結(jié)果是否和預(yù)想的一樣

,

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容