分布式資訊採集程式preview

2021-09-05 19:31:23 字數 1852 閱讀 6312

依舊先來段廢話呵呵,程式還在開發階段,擔心開發出來的程式會走樣,所以拿出來溜溜。市面上已經有n多的採集軟體了,我只是在重複輪子,比它們的好不到哪去,差到沒邊到是極有可能。不過相比目前的一些採集程式而言,我算是基於元件的吧,各個元件間可替換,希望能算得上是乙個亮點。同時也希望這次的展示,同行專家們給予建議和批評。

目前沒有解決的問題是:

1.一些需要cookie的**,怎麼採集,sina我是登入進去了,不過cnblogs我沒有登入成功。

2.定時的執行,怎麼樣讓乙個任務定時執行,使用quartz.net?,由於乙個採集任務的**可能非常之多,第乙個**採集的時間,和最後乙個**採集的時間可能相隔幾小時,如果整個任務的要求是間隔1h,採集一次,那麼最後乙個**可能才剛採集完又要採集了,或是上一次任務都還沒有執行到該**。這裡還沒有考慮採集間隔策略的情況,比如如果三次採集未發生變化則延長下次採集時間等

3.儲存問題,如果使用das、或是資料庫到是一點問題都沒有,但是如果各個客戶端將採集的結果以檔案的形式儲存,怎麼將各客戶機上的檔案彙總合併又將是乙個系統的工程

4.任務流程及元件的裝配介面實現的問題,目前對流程的配置都是使用文字編輯器來編輯配置檔案,極易寫錯,對gdi+不了解,沒有想到好的方法來實現介面化的元件裝配。

我們先來看一下採集的結果,再介紹整個採集的流程。採集的結果用xml儲存,使用了程式內建的store2xml元件,如果你想儲存到特定的資料庫中,你可以自己寫乙個元件,或者提供某個cms的webservice我們再做乙個適配元件。

我考慮再做乙個store2mdb的元件,便於將資料轉移也是嵌入式的,不採用sqlite是因為一般使用者可能不太了解。

下面我以採集下的創業資訊和創業錦囊欄目為例,展示一下這個程式

step1:分析網頁

這兩個欄目的樣式是一樣的,因此我們只需要寫乙個採集規則就可以了。

開啟任意乙個欄目的列表頁,檢視它的原始碼,我們需要找到重複的片段,如下圖中高亮的部分是重複出現的內容

我們將上圖中的欲抽取的部分原始碼放到regexbuddy中作為測試**,用來測試我們撰寫的正則

將測試完的正則放到元件的指定屬性中,目前只能手工配置了,在實際中應用有乙個圖形化的環境,提供step by step的操作提示

最後我們來設計元件裝配置執行的流程,使用的是boo解釋引擎,類似ironpython

step 2:新增任務

將設計階段製作好的任務包新增進來,填寫好資訊,就可以提交任務了

下圖是程式後台執行的過程

附採集的結果 

數薈集分布式採集平台分析

一 概述 本產品是分布式 速度快 穩定 適用採集範圍廣 企業級產品,適合大資料量採集 日採集量在幾千萬 上億的資料量級別 對時效性要求高的企業,比如輿情公司和大資料分析公司,資料實時監控公司等。二 具體描述 1 分布式 由一台排程伺服器和多個採集節點組成分布式架構,排程伺服器可以同時管理多個節點節點...

分布式 分布式鎖

本質是利用redis的setnx 方法的特性來加鎖,setnx 即key不存在則設定key,否則直接返回false,要求在分布式系統中使用同乙個redis服務,以下提供兩種解決方案 1 直接使用redistemplate 這其實並不能完全保證高併發下的安全問題,因為可能在鎖過期之後該執行緒尚未執行完...

分布式 分布式事務

是資料庫執行過程中的乙個邏輯單位,由乙個有限的資料庫操作序列構成。事務的acid四大特性 原子性 atomicity 事務作為乙個整體被執行。一致性 consistency 從乙個一致的狀態轉換到另乙個一致的狀態。隔離性 isolation 多個事務併發執行時,併發事務之間互相影響的程度。永續性 d...