xpath是什么(入門教程)


xpath是什么(入門教程)

一、總結

一句話總結:一句話,XPath 是一門在 XML 文檔中查找信息的語言。簡單來說,html類似於xml結構,但是沒有xml格式那么嚴格。

在xml中查找信息 包括html

 

1、如何獲取想要部分的xpath路徑?

使用chrome

chrome 谷歌瀏覽器中很方便找到

 

 

2、xpath驗證工具?

google瀏覽器擴展XPath_Helper

google瀏覽器擴展 XPath Helper

樣子如下:

 

 

3、xpath的特點?

簡單 易學 和常規的電腦系統文件路徑中的表達式非常相似

XPath 使用路徑表達式來選取 XML 文檔中的節點或者節點集。這些路徑表達式和我們在常規的電腦文件系統中看到的表達式非常相似

可以隨便去網上找個教程,很快很快學會

比如:XPath 教程 | 菜鳥教程
http://www.runoob.com/xpath/xpath-tutorial.html

 

 

二、xpath入門教程(轉)

轉自:xpath入門教程 - liwenbo_csu的博客 - CSDN博客
https://blog.csdn.net/liwenbo_csu/article/details/78540376

 
大部分程序開發者應該都有過爬取網頁的經歷,每個人爬取的方法也不太相同,有的用強大的正則表達式,有的用selector,有的也會用第三方提供的插件等等。每種方法都有各自的優缺點,比如正則的抓取效率問題但是通用性強,selector上手難度,插件類比如simple_dom_php抓取不到直接error退出進程問題等等。這里不做過多評價,只介紹一個好用的、強大的、易上手的抓取工具xpath。
 
什么是xpath
一句話, XPath 是一門在 XML 文檔中查找信息的語言。簡單來說,html類似於xml結構,但是沒有xml格式那么嚴格。
 
十分鍾入門xpath
入門用法,如何抓取百度首頁圖片鏈接
使用谷歌瀏覽器獲取需要抓取元素的xpath路徑
把自動生成的路徑拷貝到代碼中(ps:這里把網頁代碼保存在了本地!)
運行查看結果

第二步:掌握基本語法,xpath語法類似於路徑選擇,非常容易上手
以下圖html舉例如何獲取不同的節點:

方法一:根據路徑獲取節點信息

方法二:根據屬性值快速選取節點

掌握以上幾種常用法,基本上就可以快速開發一個頁面的抓取功能了,是不是非常簡單,趕緊自己動手試試吧。更深入的用法無非是在上面基礎上加了一些函數操作,具體可以搜索xpath教程,這里只做入門,不再深入介紹。
 
性能如何?
這里我使用上述html建立了以下基准進行測試:
1、使用PHP語言 (php版本5.4.41)
2、選取相同網頁,約20W字符 (www.baidu.com)
3、各抓取一千次 (循環一千次,抓取所有img標簽的圖片地址)
分別用正則和xpath進行抓取,比較處理時間。
首先定義兩個抓取方法:

循環調用一千次,得出結論:本次測試,xpath爬取可以做到秒級;正則是分鍾級別
說明:上述測試基准可能不太明確,但是差異較大已經足夠得到我們需要的對比結果。
 
總結一下:
XPath的優勢在於它的速度,這是因為它把html以樹形的結構進行存儲,在你通過層級關系查找節點的時候,並不需要對所有字符串進行遍歷,它的底層是通過libxml構建一棵DOM樹實現的查找。
XPath其實並不容易掌握(ps:我的意思是要深入掌握),它的語法和函數都非常多,學習起來成本也比較高,但是在普通的抓取業務中,只需要掌握一些基本的就足夠了。
XPath的語法和規則跟語言是無關的。
這里只討論了xpath對單個網頁的爬取新的基本方法,幫助開發人員快速抓取網頁中的信息。因為簡單快速,適用范圍必然比不上強大的正則表達式,可以根據各自的應用場景選擇。
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM