1. 程式人生 > >學會XPath,讓你的資料採集效率提高20倍

學會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

的功能。在使用者設計採集流程中,會幫使用者自動生成一條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是區分資料採集小白和高手的分水嶺。許多使用者都在XPath這座“山”前倒下。一旦你學會,你就成為了採集界的高手,即使面對再複雜的網站,採資料猶如探囊取物般容易。

這份樂趣,可是隻有學會XPath的你才能體會哦。

4、XPath如何學習

八爪魚提供豐富、全面的XPath教程,讓你從小白進階XPath高手妥妥的。

掃碼關注「八爪魚採集研究院」,並回復“xpath”,獲取XPath最全的學習教程!
在這裡插入圖片描述