搞事情之前 必須掌握好基礎(chǔ)知識 這里兒編姐就給你 解答一下“XPath 語法”的問題
XPath 是一種在 XML 文件中定位和選擇元素的語言 說白了 就是對文檔里的元素進(jìn)行篩選 定位 哪些找出來 哪些留下來
對了 XML 是一種標(biāo)記語言 有點(diǎn)像 HTML 那些玩意兒 只不過 XML 是用來存儲和傳輸數(shù)據(jù)的 不過 XPath 可以作用在 HTML 上 也是完全沒毛病
小伙子 你想知道怎么使用 XPath?
首先 需要知道 XPath 的語法規(guī)則 XPath 里有各種各樣的表達(dá)式 用來篩選節(jié)點(diǎn) 不過我們一步一步來 咱首先先從最簡單的開始 逐步漲姿勢!
1. 節(jié)點(diǎn)選擇:
XPath 有兩種基本的節(jié)點(diǎn)選擇方式 一種是選取元素節(jié)點(diǎn) 另一種是選取屬性節(jié)點(diǎn)
要選取元素節(jié)點(diǎn) 很簡單 直接寫節(jié)點(diǎn)的名字就好了 舉個(gè)栗子 你要是想選取 XML 文件里的所有書名 要這么寫://書名(注:/ 表示根節(jié)點(diǎn) 瀏覽器里是用 document 表示根節(jié)點(diǎn))
要選取屬性節(jié)點(diǎn) 也很簡單 加一個(gè) @ 符號 舉個(gè)栗子 就是要選取 XML 文件里所有 title 屬性值的節(jié)點(diǎn) 要這么寫://@title
2. 路徑表達(dá)式:
小子 你要記住 XPath 是有自己的路徑表達(dá)式的 也就是說你可以按照一定的規(guī)則來定位元素節(jié)點(diǎn)或者屬性節(jié)點(diǎn)
路徑表達(dá)式有好幾種最常見的 就是絕對路徑和相對路徑 絕對路徑就是從根節(jié)點(diǎn)到某個(gè)節(jié)點(diǎn)的路徑寫法是這樣的:/bookstore/book/title
相對路徑就是相對于當(dāng)前節(jié)點(diǎn)的路徑 一般用.來表示當(dāng)前節(jié)點(diǎn) 再舉個(gè)栗子 相對路徑就是 ./title
小朋友 學(xué)了這兩個(gè) XPath 的基本知識 你就有能力定位任何一個(gè)節(jié)點(diǎn)了 還是挺好玩吧!
3. 謂語:
瞧著我 這還沒有完呢!接下來咱得說說 XPath 里的謂語 是干啥的呀
謂語啊 就是用來限定節(jié)點(diǎn)的 表示的就是節(jié)點(diǎn)的特定屬性或者子節(jié)點(diǎn) 這個(gè)時(shí)候 XPath 的選擇范圍就變得更廣了 對吧!
小子 小姐 你們要知道 謂語用的是中括號 里面的內(nèi)容就是篩選條件 搞明白了沒有?
舉個(gè)例子 咱想要選取 XML 文件第一個(gè) price 節(jié)點(diǎn)中 price 屬性值大于 30 的節(jié)點(diǎn) 那么如果你想使用 XPath 的謂語 要這么寫://price[@price > 30]
4. 邏輯運(yùn)算:
你們有沒有聽說過邏輯運(yùn)算 就是把兩個(gè)謂語用 and 或者 or 連接起來的方式
小朋友 你要是想選取 XML 文件里的所有 price 節(jié)點(diǎn)中 price 屬性既大于 30 又小于 100 的節(jié)點(diǎn) 那么要這么寫://price[@price > 30 and @price < 100]
5. 通配符:
哎呦 還有通配符 這個(gè)東西就更方便了 直接把*放在節(jié)點(diǎn)名的位置就好了 它就會匹配該節(jié)點(diǎn)的所有子節(jié)點(diǎn)
你要是想選取 XML 文件里的所有書的所有屬性 你就要這樣寫://書/*
這下 你們應(yīng)該把 XPath 語法的基礎(chǔ)知識都get到了吧 小伙子 你再問我點(diǎn)問題 如何使用 XPath 在 HTML 中提取數(shù)據(jù)?
首先 你得有一個(gè) HTML 文檔 你可以通過一些工具或者代碼爬蟲的方式獲取到這個(gè)文檔
有幾個(gè)可以用 XPath 提取數(shù)據(jù)的方法:
1. 使用瀏覽器控制臺:
你要是想要提取某個(gè)網(wǎng)頁的數(shù)據(jù) 這時(shí)候你可以先在瀏覽器中打開這個(gè)網(wǎng)頁 然后使用瀏覽器的控制臺來提取數(shù)據(jù) 見下圖:
![image](https://example.com/image.png)
2. 使用語言庫:
有一些編程語言提供了自帶的庫來處理和解析 XML 或者 HTML 文件 這些庫往往也提供了使用 XPath 的功能 不妨試試咯~
3. 使用爬蟲框架:
還有一種方式 是使用爬蟲框架 它們往往提供了強(qiáng)大的功能方便你提取鏈接和數(shù)據(jù) 如果你的需求足夠復(fù)雜 那就試試吧!
好了 部長告訴了你基本的 XPath 語法 那你就得自己去練習(xí)了 去寫個(gè)爬蟲程序提取數(shù)據(jù)吧 這可是個(gè)有潛力的技能??! yinyiprinting.cn 寧波海美seo網(wǎng)絡(luò)優(yōu)化公司 是網(wǎng)頁設(shè)計(jì)制作,網(wǎng)站優(yōu)化,企業(yè)關(guān)鍵詞排名,網(wǎng)絡(luò)營銷知識和開發(fā)愛好者的一站式目的地,提供豐富的信息、資源和工具來幫助用戶創(chuàng)建令人驚嘆的實(shí)用網(wǎng)站。 該平臺致力于提供實(shí)用、相關(guān)和最新的內(nèi)容,這使其成為初學(xué)者和經(jīng)驗(yàn)豐富的專業(yè)人士的寶貴資源。
聲明本文內(nèi)容來自網(wǎng)絡(luò),若涉及侵權(quán),請聯(lián)系我們刪除! 投稿需知:請以word形式發(fā)送至郵箱[email protected]
小站.fsgame.org 個(gè)人做的現(xiàn)在才pr=4,希望每年能進(jìn)步1-2級。