Home

Awesome

distribute_crawler

使用scrapy,redis, mongodb,graphite实现的一个分布式网络爬虫,底层存储mongodb集群,分布式使用redis实现, 爬虫状态显示使用graphite实现。

这个工程是我对垂直搜索引擎中分布式网络爬虫的探索实现,它包含一个针对http://www.woaidu.org/ 网站的spider, 将其网站的书名,作者,书籍封面图片,书籍概要,原始网址链接,书籍下载信息和书籍爬取到本地:

需要的其他的库

可重用的组件

   sudo python init_sharding_mongodb.py --path=/usr/bin

使用方法

#mongodb集群存储

      cd woaidu_crawler/commands/
      sudo python init_sharding_mongodb.py --path=/usr/bin
      scrapy crawl woaidu

#mongodb

      cd woaidu_crawler/commands/
      python init_single_mongodb.py 
      ITEM_PIPELINES = ['woaidu_crawler.pipelines.cover_image.WoaiduCoverImage',
          'woaidu_crawler.pipelines.bookfile.WoaiduBookFile',
          'woaidu_crawler.pipelines.drop_none_download.DropNoneBookFile',
          'woaidu_crawler.pipelines.mongodb.SingleMongodbPipeline',
          'woaidu_crawler.pipelines.final_test.FinalTestPipeline',]
      scrapy crawl woaidu

注意

每次运行完之后都要执行commands/clear_stats.py文件来清除redis中的stats信息

     python clear_stats.py

Screenshots

graphite book_files book_files images terminal