數據采集-步驟及注意事項


 這是一個純文字版的干貨篇

 

1.確定采集途徑

     網頁采集和api(網頁,APP,小程序)采集,

       網頁采集需要使用工具(正則,HTMLAgility,Xpath這些)將我們 需要的數據提取出來。

     要是api采集的話,一般回來直接就是json數據了。

 

2.數據分析

    采集是個系統化的操作,一般都會是多層級的數據采集,舉個最簡單的采集例子,新聞采集:

    新聞分類 -> 分頁新聞列表 -> 新聞詳情

    這里通常是一層一層地去采集:先獲取分類,再找出分頁參數規律,獲取分類里面的所有新聞列表及詳情超

    鏈接,最后再請求詳情鏈接得到新聞詳情,最后再去下載圖片視頻等靜態資源,每一步只做簡單重復的步驟,

    保證每個采集單元都是簡單的操作,而不是一條鏈狀的操作。

 

3.寫采集思路

    分析數據完了以后不要急着寫采集代碼,先寫寫思路,包括采集過程中可能會遇到的問題:訪問限制(令牌、

    訪問頻率)、超時處理、錯誤處理 等等,先想好寫下來。

 

3.數據實體類生成

   因為采集回來的數據是一串文本,不方便處理,需要轉成結構化的數據,這里采用先采集樣例數據回來,

   使用工具直接生成實體類,如這個工具:實體生成工具

 

4.開始采集

   對於數據量比較大的采集,先采集一小部分數據回來檢查一下數據的正確性,數據量小的就直接采集

   確認沒問題再去持久化,持久化時可以將原始采集數據保存下來,

   寫每一級別的采集代碼,每一級都如此,走通整個鏈確定代碼邏輯沒問題之后就可以真正開始采集了

   

5.采集異常中斷處理

    采集過程中一般都會遇到一些中斷的問題:原始數據錯誤導致了程序錯誤、網絡超時,訪問限制

    可以采用小步數據持久化,如每采集200條記錄存一次,清空一下內存里面的數據,記錄采集進度位置,

    繼續采集,發生異常時可以做異常二次采集操作,像網絡超時這種異常通過二次采集都是可以解決的,

    最后如果二次采集都不行的話,就要記錄下來,最后去手動處理了。

 

6.靜態資源下載

    由於靜態資源具有任務執行時間長,受網絡因素影響嚴重等特點,一般都會放到文本數據采集完了以后再

    去集中下載,此時任務就是簡單的下載操作(新建文件夾,保存資源文件)。

 

7.采集模式優化(單線程,多線程,多進程)

    如果全程都是單線程執行任務的話,耗時會比較長,在采集目標站點訪問頻率允許的條件下,我們可以

    通過多線程或者多進程來加快采集速度,這里在多進程采集模式下,遇到了一個問題:當兩個進程同時

    進行批量數據持久化的時候,會因為沖突導致其中一個進程掛掉,這里不知道是不是我的DBHelper的問題,

   暫時 還不清楚是怎么一回事,通過將數據持久化的粒度放大可以大程度地避免這種沖突的出現

 

 8.優化建議

    1.采集是一個系統性的任務,需要先想明白再去做,減少推倒次數(思路推倒,代碼推倒)   。

     2.在做數據持久化的時候如果使用的是數據庫儲存的方式,可以開啟長連接或者生成批量操作語句

        一次執行,控制好語句長度,如果是采用參數化的方式,還需要注意Sqlserver 一次操作最多支持2000個

       參數

     3.獲取圖片時有些會是縮略圖,這里需要盡可能找出獲取大圖的規律,或者去水印圖片,有意識地去找,一般都能找到,如:

        淘寶:

            https://img.alicdn.com/imgextra/i2/3253381759/O1CN01QGtoxw1OrfJKnpTC3_!!3253381759.jpg_60x60q90.jpg
        微信頭像:

            https://thirdwx.qlogo.cn/mmopen/vi_32/DYAIOgq83errbT6eBrTibwCFjibL4sOYLibIib0ardJWP4uElA67tib65cKPSTaIQibrfOPlPZIt4M5MmBYmicLtPUujQ/132

        大眾點評:

            https://img.meituan.net/msmerchant/d3667f0346795b854e960641ddcde72a611747.jpg%40280w_212h_1e_1c_1l%7Cwatermark%3D0
        京東:

            https://img10.360buyimg.com/n5/s50x64_jfs/t1/142541/12/15500/463034/5fbb8076E76a3f625/25060d50306979d4.jpg!cc_50x64.jpg

        圖蟲網:

            https://photo.tuchong.com/2691500/m/92200193.webp       m -> f、g、l、s、t

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM