網頁爬蟲框架 hispider
HiSpider是一個快速和高性能的網頁爬蟲。
嚴格說只能是一個spider系統的框架, 沒有細化需求, 目前只是能提取URL, URL排重, 異步DNS解析, 隊列化任務, 支持N機分布式下載, 支持網站定向下載(需要配置hispiderd.ini whitelist).
特征和用法:
- 基于unix/linux系統的開發
- 異步DNS解析
- URL排重
- 支持HTTP 壓縮編碼傳輸 gzip/deflate
- 字符集判斷自動轉換成UTF-8編碼
- 文檔壓縮存儲
- 支持多下載節點分布式下載
- 支持網站定向下載(需要配置 hispiderd.ini whitelist )
- 可通過 http://127.0.0.1:3721/ 查看下載情況統計,下載任務控制(可停止和恢復任務)
- 依賴基本通信庫libevbase 和 libsbase (安裝的時候需要先安裝這個兩個庫)
工作流程:
- 從中心節點取URL(包括URL對應的任務號, IP和port,也可能需要自己解析)
- 連接服務器發送請求
- 等待數據頭判斷是否需要的數據(目前主要取text類型的數據)
- 等待完成數據(有length頭的直接等待說明長度的數據否則等待比較大的數字然后設置超時)
- 數據完成或者超時, zlib壓縮數據返回給中心服務器,數據可能包括自己解析DNS信息, 壓縮后數據長度+壓縮后數據, 如果出錯就直接返回任務號以及相關信息
- 中心服務器收到帶有任務號的數據, 查看是否包括數據, 如果沒有數據直接置任務號對應的狀態為錯誤, 如果有數據提取數據種link 然后存儲數據到文檔文件.
- 完成后返回一個新的任務.
本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!