最近公司里需要寫一些爬蟲項目,所以去接觸學習了xpath的內容。在w3c上給出了xpath的語法,但是我感覺不全,而且講得也不詳細,我又去網上找了一些文章,總結一下。

這幾個都是比較常用的,能解決基本近乎所有的選擇。我要說的就是從/或者//開始的路徑是絕對路徑,從.或者..開始的路徑是相對路徑。直接寫出nodename,屬於絕對定位。
接下來說點比較特殊的定位方法。
//div[div='請按“回車”鍵發起檢索']
表示選取所有包含子元素div的text域='請按“回車”鍵發起檢索'的div元素,呵呵是不是看着有點繞口,那看一個簡單一點的。
//div[span]
表示選取包含子元素span的div元素,再回頭看上面的應該明白的了把。
//div[contains(@id,'王尼瑪')]
表示屬性id字段中含有'王尼瑪'這三個字樣的div元素,這里的屬性還有很多,class,value,只要是xml里面出現的都可以使用。
//div[@id='王尼瑪']
表示屬性id='王尼瑪'的div元素。
//div[contain(text(),"草泥馬")]
//div[text()="草泥馬")]
//*[@class="cc aaa"]
*號表示通配
略。
../.././*/div[contains(@class,'草泥馬')]/div[@class='王尼瑪']
匹配當前元素的父親節點的父親節點的當前節點下的任意元素節點下的class包含'草泥馬'的div節點下的class='王尼瑪'的div節點。
另外在w3c上給出了軸的使用,我這里覺得不是很好用,比較麻煩,有興趣的同學可以去研究一下。


xptah 還可以使用 |選取多個
選擇所有title 以及artist 元素
//title | //artist
選擇所有title 以及artist 以及price 元素
//title | //artist | //price
