1. 程式人生 > >RuiJi Scraper基礎 – RuiJi表示式模型

RuiJi Scraper基礎 – RuiJi表示式模型

前言

RuiJi Scraper是一款視覺化的瀏覽器爬蟲擴充套件,是一款適合金融、新聞編輯、新媒體人員、個人站點、爬蟲工作者資料採集工具。

RuiJi表示式是RuiJi Scraper的抽取模型,同時也是RuiJi.Net開源爬蟲框架的抽取模型,RuiJi.Net是github上的開源專案,貢獻者同時也是RuiJi Scraper的作者。

RuiJi表示式是大量的爬蟲工作中總結出的經驗,基本上可以適用於所有需抓取的網頁。

RuiJi Scraper目前僅在firefox中上線,地址為 https://addons.mozilla.org/zh-CN/firefox/addon/ruiji-scraper/

資料塊 Block

在網頁設計時,網頁設計者往往會使用樣式,ID等來區分網頁的區域,不同的區域顯示不同的內容,這不僅在網頁設計上是大多設計者共同使用的習慣,同時也利用該種方式,在最終產品上形成視覺可識別的區域,使使用者能過快速的定位自己關心的內容。

Block是我們需要提取的區域,在一個頁面中這種區域可能存在多個。我們以google的RuiJi Scraper搜尋結果為例來說明一下Block。

從圖中我們可以看出,google的頁面搜尋結果(all)大致分為三部分,視訊搜尋結果,圖片搜尋結果,網頁搜尋結果。這三種搜尋結果以不同的形式展示給搜尋使用者,視訊和圖片的搜尋結果為橫向,網頁的搜尋結果為縱向,三種搜尋結果的資料都有各自的展示形式。視訊搜尋結果橫向,具有視訊預覽,時長,標題,作者,來源,上傳時間。圖片搜尋結果橫向,主要展示形式為圖片。網頁搜尋結果縱向,具有標題,網址,摘要。我們可能對其中的一部分或全部內容感興趣。

Block用來定位我們感興趣的需要提取的區域。

在Block未被定義的情況下,RuiJi表示式預設將Body作為Block

資料片 Tile

正如上面所述,每個Block可能都具有各自的展示形式(也可能相同),但是每個Block中的內容的體現形式是一樣的,在網頁開發中,開發者往往使用迴圈的方式,將需要展示的資料以相同子元素的形式展示在頁面中。我們同樣以google的RuiJi Scraper搜尋結果其中的網頁搜尋結果為例,如下圖所示:

如果我們忽略Tile中的內容的話,您將發現Block中是以相同子元素進行迴圈來向用戶展示資料。

Tile被用來定義Block中重複的子元素

元資料 Meta

元資料是我們真正要提取的資料,我們將這些資料抓取下來,儲存到文件或資料庫,以備後續使用。RuiJi Scraper會將提取出的資料按照所屬Tile,Block進行分組,並將抽取結果轉換為結構化的資料。下圖展示的是一個數據片的搜尋結果形式。這裡具有標題,連結和摘要。Meta用來描述我們在這個資料片中感興趣的資料。這裡元資料的數量根據您的需要進行定義。

Meta用來描述我們在這個資料片中感興趣的資料