標籤:

八爪魚採集入門到熟練——01寫規則前的準備工作

本文將開始採集的一些必要知識做講解,有些太偏基礎的或者網上有很現成的教學的,我會提供鏈接。

一、什麼是網頁數據採集?能採集什麼?能解決什麼問題?

1,網頁數據採集的概念

顧名思義,就是通過從網頁中採集數據。你在瀏覽器中看到的都是網頁,也叫頁面,上面的每一個文字,每一個數字,都可以稱之為數據。網頁數據採集就是系統化提取網頁上面的字元,從而得到有用的數據。

有些小白中的小白問八爪魚能採集什麼東西,這是個憂傷的問題,任何一個網頁中你能看到的字元都可以盡量想辦法採集到。看不到的,只要出現在源代碼中的,也可以盡量想辦法採集到。八爪魚只是採集工具,數據源頭需要自己找,不要把八爪魚想成自動販賣機,想要什麼點一下就行,沒那麼容易的事情。先找到數據源頁面才是重點,所以不要問以下的白痴問題:

問:八爪魚能採集所有北京飯館信息么?

答:

應該是這樣考慮問題:所有北京飯館信息哪裡可以找到?大眾點評-選擇北京-選擇餐飲應該有很多這種信息,全部的信息是很難的,但是大眾點評的信息數量很多,基本可以涵蓋我的需求。所以問題直接變更為:八爪魚能否採集大眾點評上的北京地區,美食商家信息? 答案當然是可以的。

2,網頁數據採集結果是什麼樣子

八爪魚能採集的數據非常好理解,就把它當做是個簡化的excel表格便可。八爪魚作為採集器只是提取網頁中的字元串信息,通過循環採集,最終得到的就是一張表,和excel不同的是,這個表裡只有文字,沒有圖片和其他東西。所有的數據都會存到一張表格里。

3,網頁數據採集主要作用,解決什麼問題

就像剛才說的需求那樣,可能你需要所有北京地區飯館的商家信息。做什麼用?可能你想給這些商家打電話推銷你的產品信息,也可能你只是需要統計你周邊的競爭對手,或者只是你老闆的突發奇想非讓你搜集這些數據,又或者是這是你的大學畢業論文課題所需要的數據。數據的需求是多種多樣的,但是都是一個流程:輸入(數據來源)-採集(八爪魚)-加工(數據清洗)-輸出(最終用途)。數據不是萬能的,但是數據的最終用途是由你來決定的。

二、八爪魚採集器是什麼?採集原理是什麼?

1,八爪魚採集工具介紹

八爪魚官網:bazhuayu.com/

八爪魚是一個工具、程序、軟體,它把數據採集的繁瑣性工作簡化為自動化執行,從而解決大批量數據採集的問題。

它的下載和安裝都是比較簡單的,八爪魚本身可以免費使用,免費版本基本操作都是ok的,但是只允許單機採集,並且導出數據的時候需要用積分。如果不想花太多錢,完全可以使用單機採集,積分導出的形式。雲採集作為旗艦版配置,主要是解決採集速度慢的問題,這個之後再細講。

建議先好好看看八爪魚入門手冊:bazhuayu.com/doc-wf

八爪魚的基本操作在本文中不做過多講解,也許你會批鬥我:這不是入門教學么?為什麼不講? 對此我只能說,八爪魚官網的教學視頻很直白,軟體操作入門上手難度也很低,預期我費勁講這些基本操作,不如通過舉例子來講解來得快。而且你又沒給我錢,八爪魚也沒給我錢,我幹嘛講那麼細呢?是不是。

2,八爪魚的採集原理

八爪魚採集原理可以簡單地理解為,模擬用戶訪問某個頁面,從頁面源代碼中提取想要的信息。一切的一切都基於模擬用戶訪問和用戶操作,這就是八爪魚的核心——「模擬」。這個核心決定了很多問題,詳細的可以看我寫的其他文章《市面主流採集工具對比和個人感受》。

註:是的,你找不到這篇文章文章,為什麼?因為我還沒寫,哈哈哈……(抱歉這只是臨時的,因為沒寫完所以沒更新鏈接)但是我在知乎的回答中有一些說明,可以點擊這裡查看。

三、採集之前你需要知道的事情

1,什麼是網頁、HTML、源代碼

網頁本身並不是直接顯示在那裡的,你看到的頁面是經過渲染才顯示出來的。舉個傻點的例子,就像是你看到一個麵包,但是你看不到這麵包裡面的麵粉、雞蛋、添加劑,你只看到了一個通過將原材料加工之後的成品。這就是它們之間的關係,源代碼是原材料,通常的網頁都是基於HTML語言編寫的源代碼,通過你的瀏覽器,也就是IE、chrome、火狐之類的,進行解析、渲染之後得到的可視化頁面。這部分不理解的朋友自行百度,這裡不過多闡述。

2,看源代碼為什麼很重要?

由於你在瀏覽器中看到的頁面是經過「處理」的,所以最真實的數據你並不一定能看到。源代碼展現了這些數據,可能你以為無法提取的數據,實際上從源代碼中可以看到並提取出來。而且八爪魚的工作機制就是從源代碼中提取數據。

3,Xpath是什麼,為什麼很重要

XPath 是一門在XML 文檔中查找信息的語言。XPath 可用來在XML 文檔中對元素和屬性進行遍歷。這裡大家別管xml是什麼,html也是一種文檔,xpath支持在裡面定位元素和查找屬性信息。定位元素的元素指的是什麼呢?大家先看看HTML的代碼例子:

最開始接觸的人肯定看著覺得頭暈腦脹的,沒辦法,沒接觸過編程的人肯定覺得幹嘛什麼都代碼化。但是現實就是如此,代碼化的東西再可視化才能實現機器和人類的交互。HTML是樹形結構,一個元素下面嵌套很多別的元素,理論上是無限制的嵌套。比如:

1

1.1

1.1.1

2

2.1

2.1.1

等等等等……每一個都是一個元素,元素有自己的屬性(進入新頁面、觸發操作、提交表單等),定位到了元素,就可以提取屬性或者文本,從而精準提取我們需要的數據。別把它理解煩瑣了,就想像成目錄一樣,通過xpath代碼可以定位到具體某一章節的某一子節里一樣。

Xpath之所以非常重要,就是因為八爪魚的一切定位和規則細節,全部依賴於xpath,所以xpath不掌握,是不可能用好八爪魚的。具體的xpath教程,還是建議參考W3SCHOOL網站的,別怕枯燥,迎難而上才能突破自我:點擊這裡。

當然,也別太擔心,之後有很多套路會教給大家,用xpath套路解決問題也會容易許多。

4,需要準備的軟體

首先,你需要一個瀏覽器,大家肯定會很激動的說,這玩意我有一大堆!我們不需要其他的,八爪魚的內核是火狐瀏覽器,所以最保險的流程,就是安裝一個火狐瀏覽器。接下來就是套路時間,請自行在網上尋找或者在火狐瀏覽器內下載和安裝兩個插件:

分別是Firebug和Firepath,它們的作用就是提供方便的xpath定位和檢查功能。

順利安裝完以後,我們進入隨便一個網上的網頁,點擊F12快捷鍵就可以進入開發者操作區。

注意看我的截圖,要先點擊下方的firepath選項卡之後才能進入firepath操作界面,在這個界面里,先點擊左側的小按鈕,然後再點擊頁面上你想提取的數據位置,就可以查看源代碼信息並且自動生成該元素的xpath代碼。

有了這個工具輔助,八爪魚可以更精準的實現循環、定位元素,解決很多人莫名其妙的數據漏采、丟失、採集中斷等問題。

有人會問,為什麼不用IE、谷歌、QQ瀏覽器、傲遊瀏覽器、搜狗瀏覽器?

很簡單,一句話,八爪魚裡面的瀏覽器是火狐內核……所以只有火狐看到的是最一致的。而且firepath還挺好用的,谷歌上我還沒找到和它完全一樣的插件,有個比較好用的谷歌插件叫xpath helper,大家也可以試試看。

四、來開始採集吧!

如果你以為在本文我就會開始採集,那你就大錯特錯了!這就是套路,我怎麼會在一篇文章中寫那麼多呢?你又不給我稿費……以上都是準備工作,下一篇文章中,我會以一些網站做一些案例來講採集的流程。我的原則是,不以繁瑣的基礎教程來入門,直接以入門實戰的方法去講,其中一些細節和經驗可以通過舉一反三的形式擴展到更多的案例中,從而避免腦袋大,建立信心!

記得去目錄頁查看有哪些文章已經更新可以看到了:

點擊這裡(這個是我的博客上的鏈接,回頭更新知乎上的)

群主的官方博客:極客兔子的博客

(因為個人網站備案太麻煩,所以使用的是香港伺服器,沒有備案,請無視相關警告和提示)

一些採集器教程和教學我都會更新到博客里,可以多多關注獲得最新信息。

兔哥數據極客俱樂部QQ群:462346024


推薦閱讀:

2017年,數據採集行業發生了哪些事情
淺談一下最近使用八爪魚採集器遇到的坑(還有對比其他採集軟體和爬蟲)
知乎上的用戶評論數據如何用八爪魚獲取?

TAG:数据采集 |