亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費注冊 查看新帖 |

Chinaunix

  平臺 論壇 博客 文庫
最近訪問板塊 發(fā)新帖
查看: 14788 | 回復: 1
打印 上一主題 下一主題

使用scrapy,redis, mongodb實現(xiàn)的一個分布式網(wǎng)絡爬蟲 [復制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報告]
發(fā)表于 2013-04-18 07:47 |只看該作者 |倒序瀏覽
------使用scrapy,redis, mongodb,graphite實現(xiàn)的一個分布式網(wǎng)絡爬蟲,底層存儲mongodb集群,分布式使用redis實現(xiàn), 爬蟲狀態(tài)顯示使用graphite實現(xiàn)。

這是項目的地址:https://github.com/gnemoug/distribute_crawler.git

------這個工程是我對垂直搜索引擎中分布式網(wǎng)絡爬蟲的探索實現(xiàn),它包含一個針對http://www.woaidu.org/ 網(wǎng)站的spider, 將其網(wǎng)站的書名,作者,書籍封面圖片,書籍概要,原始網(wǎng)址鏈接,書籍下載信息和書籍爬取到本地:
------分布式使用redis實現(xiàn),redis中存儲了工程的request,stats信息,能夠?qū)Ω鱾機器上的爬蟲實現(xiàn)集中管理,這樣可以 解決爬蟲的性能瓶頸,利用redis的高效和易于擴展能夠輕松實現(xiàn)高效率下載:當redis存儲或者訪問速度遇到瓶頸時,可以 通過增大redis集群數(shù)和爬蟲集群數(shù)量改善。
------底層存儲實現(xiàn)了兩種方式:
------------將書名,作者,書籍封面圖片文件系統(tǒng)路徑,書籍概要,原始網(wǎng)址鏈接,書籍下載信息,書籍文件系統(tǒng)路徑保存到mongodb 中,此時mongodb使用單個服務器,對圖片采用圖片的url的hash值作為文件名進行存儲,同時可以定制生成各種大小尺寸的縮略 圖,對文件動態(tài)獲得文件名,將其下載到本地,存儲方式和圖片類似,這樣在每次下載之前會檢查圖片和文件是否曾經(jīng)下載,對 已經(jīng)下載的不再下載;
------------將書名,作者,書籍封面圖片文件系統(tǒng)路徑,書籍概要,原始網(wǎng)址鏈接,書籍下載信息,書籍保存到mongodb中,此時mongodb 采用mongodb集群進行存儲,片鍵和索引的選擇請看代碼,文件采用mongodb的gridfs存儲,圖片仍然存儲在文件系統(tǒng)中,在每次下載 之前會檢查圖片和文件是否曾經(jīng)下載,對已經(jīng)下載的不再下載;
------避免爬蟲被禁的策略:
------------禁用cookie
------------實現(xiàn)了一個download middleware,不停的變user-aget
------------實現(xiàn)了一個可以訪問google cache中的數(shù)據(jù)的download middleware(默認禁用)
------調(diào)試策略的實現(xiàn):
------------將系統(tǒng)log信息寫到文件中
------------對重要的log信息(eg:drop item,success)采用彩色樣式終端打印
------文件,信息存儲:
------------實現(xiàn)了FilePipeline可以將指定擴展名的文件下載到本地
------------實現(xiàn)了MongodbWoaiduBookFile可以將文件以gridfs形式存儲在mongodb集群中
------------實現(xiàn)了SingleMongodbPipeline和ShardMongodbPipeline,用來將采集的信息分別以單服務器和集群方式保存到mongodb中
------訪問速度動態(tài)控制:
------------跟據(jù)網(wǎng)絡延遲,分析出scrapy服務器和網(wǎng)站的響應速度,動態(tài)改變網(wǎng)站下載延遲
------------配置最大并行requests個數(shù),每個域名最大并行請求個數(shù)和并行處理items個數(shù)
------爬蟲狀態(tài)查看:
------------將爬蟲stats信息(請求個數(shù),文件下載個數(shù),圖片下載個數(shù)等)保存到redis中
------------實現(xiàn)了一個針對分布式的stats collector,并將其結(jié)果用graphite以圖表形式動態(tài)實時顯示
------mongodb集群部署:在commands目錄下有init_sharding_mongodb.py文件,可以方便在本地部署

[圖片] 爬蟲運行狀態(tài)graphite實時顯示


[圖片] 爬蟲運行終端截圖


[圖片] 下載的圖片截圖

[圖片] 下載的書籍文件截圖


[圖片] mongodb集群運行

[圖片] 數(shù)據(jù)mongodb存儲

[圖片] 文件mongodb集群存儲

[圖片] 日志文件截圖

論壇徽章:
0
2 [報告]
發(fā)表于 2013-04-21 11:17 |只看該作者
lz如果封ip呢?

如何發(fā)現(xiàn)被封?

您需要登錄后才可以回帖 登錄 | 注冊

本版積分規(guī)則 發(fā)表回復

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報專區(qū)
中國互聯(lián)網(wǎng)協(xié)會會員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP