云采集原理以及規則加速設置教程


對于旗艦版以上的用戶,可以通過云采集實現多任務并發和單任務加的采集效果以便用戶快速的收集整理互聯網公開數據,本教程主要講云采集原理、規則加速設置

?

一、云采集原理


A.一個規則任務進行云采集最少占用一個云節點,最多可以占滿所有云節點

B.一個規則任務滿足可拆分成子任務的情況下,最多拆成199個子任務

C.一個子任務占用一個節點,子任務全部執行完成意味著任務完成

D.一個規則任務拆成多個子任務分配到不同云節點就達到加速采集的效果

E.如果云節點被占滿,那么新啟動的任務或被拆分的子任務會進入等待隊列,直到用戶某個云節點執行完用戶的某個任務釋放出節點資源。


Cloud 1

?

1 云采集運行中


如圖紅線處任務分配到云節點,多任務并發采集數據,如圖紅框處,由于節點被占滿,只能進入等待隊列,等待某個云節點執行完成后釋放資源

?

二、云采集加速設置


由云采集原理D可知,如果要一個任務加速采集的效果,那么這個任務要滿足拆分條件或者將任務改成滿足拆分條件的任務,這樣才能達到單任務加速的效果


滿足拆分條件的任務分別為:

A.URL列表循環

B.文本列表循環

C.固定元素列表循環


2.1URL列表循環、文本循環

示例網址:http://www.dianping.com/search/category/15/30

對于非AJAX網站,以大眾店鋪為例,假設我要采集該網站所有分類下的店鋪,那么我們可先采集分類的URL,然后做URL循環進行采集店鋪信息,具體步驟如下:


步驟1 以先將所有具體分類采集下來,如圖2 采集點評分類URL


動圖1

?

2 采集點評分類URL

小貼士 采集完分類的URL后,我們就可以將這個URL作為URL循環進行數據提取,這樣的話,通過八爪魚自動拆分任務,就可以將不同的URL拆分成不同的子任務分配給不同的云節點進行數據采集,達到單任務加速的采集效果


步驟2 通過步驟1的采集,將URL建立URL循環進行數據采集,具體如截圖3 URL循環列表


Dianping 2?

3 URL循環列表采集


步驟3?對比效果,如圖4 本機采集和URL循環列表云采集采集效率對比


V Su 1

?

4 云采集采集速率


小貼士?云采集除了采集效率比本機采集高之外,還能節省用戶自身電腦與網絡資源,與本地采集消耗用戶本地電腦資源和網絡資源相比,云采集所用資源都是云節點資源,用戶啟動云采集后就可關閉客戶端,八爪魚會自動將數據整理匯總在八爪魚客戶端,用戶只需要在數據提取到后,通過客戶端查看或導出數據即可。


結語:URL循環的教程已經講完,對于文本循環來說,原理和URL循環一致,通過對文本循環的拆分,達到單任務加速采集的效果,從而提升采集速率

?

2.2固定元素列表循環

固定元素列表循環也是滿足拆分條件的,需要的是固定元素列表循環點擊配合一起使用,固定元素列表例如:


Gudingyuansu 1

?

5 固定元素列表-點擊元素

但是下列情況是不會加快采集速率的,例如:


Gudingyuansu 2

?

6 固定元素列表-提取數據


原因是因為固定元素列表-提取數據雖然可以拆分成子任務,但是因為提取同頁面數據操作本身很快,所以幾乎沒有任務加速效果。


例如:

子任務A:打開網頁(20s-提取位置a數據(0.1s

子任務B:打開網頁(20s-提取位置b數據(0.1s

子任務C:打開網頁(20s-提取位置c數據(0.1s

......

子任務N:打開網頁(20s-提取位置n數據(0.1s

如上例,雖然拆分了任務但是實際任務執行時間還是約等于21秒左右,和不拆分任務的時間比較的如下:

總任務S

打開網頁(20s

提取位置a數據(0.1s

提取位置b數據(0.1s

提取位置c數據(0.1s

......

提取位置n數據(0.1s

此時我們可以看到,不拆分的時間T=20+0.1*10=21S

所以雖然此時我們用不固定元素拆分了任務,但是沒有帶來顯著的提取數據效率的提升

?

對于固定元素列表-點擊元素就不一樣了,因為點擊元素往往都要打開詳情頁,例如:

子任務A:打開網頁(20s-點擊位置元素a20s-提取位置a數據(0.1s

子任務B:打開網頁(20s-點擊位置元素b20s)提取位置b數據(0.1s

子任務C:打開網頁(20s-點擊位置元素c20s-提取位置c數據(0.1s

......

子任務N:打開網頁(20s-點擊位置元素n20sn--提取位置n數據(0.1s

由于是子任務是同時執行的,此時時間T=20+20+0.1=40.1S,約41秒左右

?

固定元素列表-點擊元素,不拆分任務時的時間比較如下:

總任務S

打開網頁(20s

點擊位置元素a20s-提取位置a數據(0.1s

點擊位置元素b20s-提取位置b數據(0.1s

點擊位置元素c20s-提取位置c數據(0.1s

.....

點擊位置元素n20s-提取位置n數據(0.1s

此時我們可以看到,不拆分的時間T=20+(20+0.1)*n

n=10時,T=221S,與拆分的41S比較,耗時幾乎是拆分的5

?

綜上所述:

滿足拆分條件的任務分別為:

A.URL列表循環

B.文本列表循環

C.固定元素列表循環

?

?

?