基于Scrapy框架的分布式網(wǎng)絡爬蟲系統(tǒng)設計與實現(xiàn)
【文章頁數(shù)】:4 頁
【部分圖文】:
圖1解析器中間件類圖
調度器中間件,介于Scrapy引擎和調度器之間的中間件,從Scrapy引擎發(fā)送到調度的請求和響應;調度器,用來接受引擎發(fā)過來的請求,壓入隊列中,并在引擎再次請求的時候返回,本文通過使用Scrapy-Redis存儲調度redis的訪問請求,實現(xiàn)分布式任務調度和爬取功能,網(wǎng)頁調度功能....
圖2下載器中間件類圖
業(yè)務層是本系統(tǒng)的關鍵所在,本系統(tǒng)的所有業(yè)務邏輯功能和相關算法皆在本層實現(xiàn),具體設計如圖2所示。使用業(yè)務層的優(yōu)勢在于可以降低表示層和數(shù)據(jù)層的功能復雜度,使表示層專注于請求響應,使數(shù)據(jù)層專注于數(shù)據(jù)操作,這樣不僅使系統(tǒng)結構清晰,而且可以最大程度上實現(xiàn)系統(tǒng)松耦合,便于業(yè)務功能的擴展和屏蔽....
圖3網(wǎng)頁判重流程圖
本文采用基于Hash算法的MD5壓縮映射存儲,實現(xiàn)URL去重池的功能。爬取過程中,MD5算法能夠將任意位數(shù)的字符串壓縮為128位整數(shù),并映射為物理地址,且MD5進行Hash映射碰撞的概率非常小,幾乎可以忽略不計,可以實現(xiàn)URL去重池的唯一性。在爬蟲每一次爬取過程中,將在MD5存儲....
圖4網(wǎng)頁下載流程圖
網(wǎng)頁下載模塊在網(wǎng)頁判重模塊之后,本系統(tǒng)使用Scrapy框架中的下載器中間件(處理Scrapy引擎與下載器之間的請求及響應),繼承DownloaderMiddleware類,并重寫process_request(request,spider)方法。本系統(tǒng)先從請求隊列RequestQ....
本文編號:3983868
本文鏈接:http://www.sikaile.net/kejilunwen/shengwushengchang/3983868.html