hispider網(wǎng)頁(yè)爬蟲(chóng)框架
HiSpider is a fast and high performance spider with high speed
嚴(yán)格說(shuō)只能是一個(gè)spider系統(tǒng)的框架, 沒(méi)有細(xì)化需求, 目前只是能提取URL, URL排重, 異步DNS解析, 隊(duì)列化任務(wù), 支持N機(jī)分布式下載, 支持網(wǎng)站定向下載(需要配置hispiderd.ini whitelist).
特征和用法:
- 基于unix/linux系統(tǒng)的開(kāi)發(fā)
- 異步DNS解析
- URL排重
- 支持HTTP 壓縮編碼傳輸 gzip/deflate
- 字符集判斷自動(dòng)轉(zhuǎn)換成UTF-8編碼
- 文檔壓縮存儲(chǔ)
- 支持多下載節(jié)點(diǎn)分布式下載
- 支持網(wǎng)站定向下載(需要配置 hispiderd.ini whitelist )
- 可通過(guò) http://127.0.0.1:3721/ 查看下載情況統(tǒng)計(jì),下載任務(wù)控制(可停止和恢復(fù)任務(wù))
- 依賴基本通信庫(kù)libevbase 和 libsbase (安裝的時(shí)候需要先安裝這個(gè)兩個(gè)庫(kù))
工作流程:
- 從中心節(jié)點(diǎn)取URL(包括URL對(duì)應(yīng)的任務(wù)號(hào), IP和port,也可能需要自己解析)
- 連接服務(wù)器發(fā)送請(qǐng)求
- 等待數(shù)據(jù)頭判斷是否需要的數(shù)據(jù)(目前主要取text類(lèi)型的數(shù)據(jù))
- 等待完成數(shù)據(jù)(有l(wèi)ength頭的直接等待說(shuō)明長(zhǎng)度的數(shù)據(jù)否則等待比較大的數(shù)字然后設(shè)置超時(shí))
- 數(shù)據(jù)完成或者超時(shí), zlib壓縮數(shù)據(jù)返回給中心服務(wù)器,數(shù)據(jù)可能包括自己解析DNS信息, 壓縮后數(shù)據(jù)長(zhǎng)度+壓縮后數(shù)據(jù), 如果出錯(cuò)就直接返回任務(wù)號(hào)以及相關(guān)信息
- 中心服務(wù)器收到帶有任務(wù)號(hào)的數(shù)據(jù), 查看是否包括數(shù)據(jù), 如果沒(méi)有數(shù)據(jù)直接置任務(wù)號(hào)對(duì)應(yīng)的狀態(tài)為錯(cuò)誤, 如果有數(shù)據(jù)提取數(shù)據(jù)種link 然后存儲(chǔ)數(shù)據(jù)到文檔文件.
- 完成后返回一個(gè)新的任務(wù).
評(píng)論
圖片
表情
