學會XPath,讓你的資料採集效率提高20倍
為什麼要寫XPath這個話題?
最近發現在使用者用八爪魚採集資料過程中遇到的問題,有80%以上的資料爬取遺漏、不準確的問題,都是因為:
「XPath地址不準確」導致。
比如:
A:“我設計好的規則,怎麼採集下來很多空白的資料?”
B:“我採集下來的資料,怎麼有那麼多不必要的欄位?導致我後續清洗資料的工作量非常大。”
C:“為何我採集的資料是錯的?”
等等……
這些問題都源自採集資料過程中,資料**「定位」**不夠精準導致。
而XPath的最大作用就在於**「精準定位」**目標資料。
1、XPath初相識
什麼是XPath?
XPath(XML Path Language),其中XML是用來儲存和傳輸資料的網頁文件,Path意為路徑。
XPath是在HTML文件中查詢資訊的語言。
XPath 用於在HTML文件中通過元素和屬性進行導航。
什麼是HTML?
HTML(Hyper Text Markup Language)超文字標記語言。
HTML,用來描述網頁的一種語言。我們日常瀏覽的網頁背後都是一個個HTML文件。我們開啟一個網頁,點選滑鼠右鍵,點選“檢視網頁原始碼”就能看到該網站的HTML文件。
2、XPath在採集過程中如何工作
XPath工作原理
XPath的工作原理
網頁上的每個元素都有獨立的位置,猶如地球上每個地點都有各自的經緯度。要找到這個元素,需要制定一條通往它的路線。
XPath就是這樣一條可以精準找到網頁文字中某個元素的路徑。
在採集過程中,有了XPath路徑,八爪魚便能迅速從HTML文件中,精準定位到使用者需要的資料,並採集下來。
採集過程幾乎每一步都有XPath
在八爪魚制定規則中,除了開啟網頁以外,其他每個步驟都會有一條XPath。
比如,定位需要提取的資料的XPath。
比如,定位迴圈採集列表的XPath。
比如,定位迴圈翻頁按鈕的XPath。
為了降低使用者使用門檻,八爪魚內建了一項自動生成XPath
3、XPath為什麼重要?
既然八爪魚能自動生成XPath,為什麼還要學?
八爪魚XPath自動生成的XPath只能滿足基礎且結構較單一的的網頁採集。
實際上,所有的網站的結構都是複雜且千變萬化的,即使同一個網站的同個欄目底下,其子頁面的結構也是不盡相同。
只靠自動生成的XPath,你會經常遇到文章開頭提到的採集問題。
這時,如果你會寫XPath,問題就能迎刃而解了。
學習XPath對你有什麼好處?
| XPath可靈活地應對各式各樣的網站
學習XPath,就是學習一套通用的網頁資料採集的方法原理。不管網站是什麼型別或行業的,掌握了方法和原理,猶如掌握了數學公式,外部變數再多,解題的方法還是一樣的。
| XPath可提高採集精準度,一擊即中
沒有對比就沒有傷害,我們看下不精準XPath和精準XPath的採集結果對比。
不精準XPath採集結果(出現大量空白欄位)
精準XPath採集結果(資料非常完整)
採集結果出現空白欄位幾乎都是因網頁結構發生變化,XPath的路徑不夠精準,導致你的採集工作來回返工,工作量倍增。如果你懂XPath,就能寫一條精準且通用的XPath匹配不同的網頁結構。
| XPath可優化採集流程,提高採集速度
採集的速度除了受網速、裝置硬體影響以外,也會受到XPath影響。精準的XPath能夠快速定位資料,優化採集流程從而提高採集速度。
| XPath能讓你體會到高階採集技巧的樂趣.
XPath是區分資料採集小白和高手的分水嶺。許多使用者都在XPath這座“山”前倒下。一旦你學會,你就成為了採集界的高手,即使面對再複雜的網站,採資料猶如探囊取物般容易。
這份樂趣,可是隻有學會XPath的你才能體會哦。
4、XPath如何學習
八爪魚提供豐富、全面的XPath教程,讓你從小白進階XPath高手妥妥的。
掃碼關注「八爪魚採集研究院」,並回復“xpath”,獲取XPath最全的學習教程!