45fan.com - 路饭网

搜索: 您的位置主页 > 网络频道 > 阅读资讯:如何一次性运行多个Spiders?

如何一次性运行多个Spiders?

2016-08-26 07:18:12 来源:www.45fan.com 【

如何一次性运行多个Spiders?

如果创建了多个Spider,希望通过cronjob一次性运行所有的Spiders,可以通过自定义Scrapy命令来实现。

具体方法来自 techbrood.com 网站聚合引擎的实践。

1. 在你的Scrapy工程下面新建一个目录:

cd path/to/your_project

mkdir commands

注意这个commands和spiders目录是同级的

 

2. 在commands下面添加一个文件crawlall.py,代码如下:

from scrapy.command import ScrapyCommand
from scrapy.utils.project import get_project_settings
from scrapy.crawler import Crawler

class Command(ScrapyCommand):

  requires_project = True

  def syntax(self):
    return '[options]'

  def short_desc(self):
    return 'Runs all of the spiders'

  def run(self, args, opts):
    settings = get_project_settings()

    for spider_name in self.crawler.spiders.list():
      crawler = Crawler(settings)
      crawler.configure()
      spider = crawler.spiders.create(spider_name)
      crawler.crawl(spider)
      crawler.start()

    self.crawler.start()

3. 在settings.py中添加配置:

COMMANDS_MODULE = 'yourprojectname.commands'

 

4. 在cronjob中添加:scrapy crawlall命令即可

 

by iefreer


本文地址:http://www.45fan.com/a/question/67778.html
Tags: 运行 一次性 Scrapy
编辑:路饭网
关于我们 | 联系我们 | 友情链接 | 网站地图 | Sitemap | App | 返回顶部