PDF文檔下載
一、 概述
在網(wǎng)頁抓取項目中通常最缺的是IP地址資源,大多數(shù)網(wǎng)站對抓取會做些限制(比如同一IP地址的線程數(shù)限制,再比如幾分鐘之內(nèi)同一IP地址的頁面訪問次數(shù)限制)。
基于P2P模式的分布式抓取方案是利用分散在各處的可上網(wǎng)機器來抓取網(wǎng)頁,可有效的突破網(wǎng)站限制。
二、設(shè)計圖
上網(wǎng)客戶端1 。。。上網(wǎng)客戶端m是分散在各處能直接上網(wǎng)的機器,這些上網(wǎng)客戶端機器定時向狀態(tài)服務(wù)區(qū)報告自己的心跳。
抓取客戶端 1 。。。抓取客戶端 n 是集中放在某處的抓取機器。抓取客戶端機器定時向狀態(tài)服務(wù)器獲取可用上網(wǎng)客戶端列表,然后抓取客戶端機器直接與上網(wǎng)客戶端建立連接,抓取客戶端機器直接通過上網(wǎng)客戶端來抓取網(wǎng)頁。
三、實現(xiàn)方案
方案一:
在上網(wǎng)客戶端機器上安裝共享上網(wǎng)代理軟件比如ccproxy,抓取客戶端以代理的方式通過上網(wǎng)機器抓取網(wǎng)頁。該方案簡單易行,無技術(shù)障礙。
方案二:
開發(fā)一套簡化版P2P軟件,抓取客戶端機器將抓取請求分發(fā)給客戶端機器,客戶端機器將網(wǎng)頁抓取下來傳回給抓取客戶端機器。該方案復(fù)雜些,但可擴展性極強。在掌握了大量上網(wǎng)客戶端機器后完全可以做成云計算進行商業(yè)運作。