delphi 用idhttp做web頁面數據抓取 注意事項


這里不討論webbrowse方式了 。直接采用indy的 idhttp  Get post 可以很方便的獲取網頁數據。

但如果要抓取大量數據 程序穩定運行不崩潰就不那么容易了。這幾年也做了不少類似工具 總結了幾點 好記性不如爛筆頭。

  1. 內存泄露 獲取頁面文本 少不了用到html解析 具體到delphi 估計采用mshtml htmltotext 方法的不少,這個方案再大數據量時就會內存溢出 導致程序崩潰,而這並不是每個程序員都知道。解決的方案:采用自己的html解析類 這里我要感謝 武稀松(csdn稱呼) 該類已非常完善 不存在內存泄露 而且目前還沒遇到解析不了的網頁。
  2. out of memory  。獲取下來的數據我們一般采取tstrings來內存暫存 殊不知 當數據量達到百萬 程序就會吃掉所有內存而報out of memory  解決方案很簡單 定時定量存為文件。
  3. 線程池。下載我們都希望是越快越好 那么很容易就采用多線程方案。再這里我建議采用線程池 而不是頻繁的創建銷毀線程。
  4. 異常處理。刷網頁數據會越到各種奇葩異常數據 這時需要我們過濾 編寫健壯代碼 已保證程序不over。

 


免責聲明!

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



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