Scarapy爬虫類ファイルの一括運転の実現

2159 ワード

Scarapyでは、爬虫類ファイルを一括して実行する2つの方法があります。
1、CrawProcessを使って実現する
https://doc.scrapy.org/en/latest/topics/practices.html
2、crawのソースコード+カスタマイズ命令の方式を修正して実現する。
(1)scrapy.com mmands.rawl.pyを開きます。 ファイルが表示されます。

 def run(self, args, opts):
    if len(args) < 1:
      raise UsageError()
    elif len(args) > 1:
      raise UsageError("running 'scrapy crawl' with more than one spider is no longer supported")
    spname = args[0]

    self.crawler_process.crawl(spname, **opts.spargs)
    self.crawler_process.start()
これはcrawl.pyです ファイル中のrun() 方法は、ここでどの爬虫類を実行するかを指定できます。すべての爬虫類を実行するには、この方法を変更する必要があります。
run() 方法の中でcrawlerを通じて(u)process.rawl(spname、****opts.spargs) 爬虫類ファイルの運行を実現しました。spnameは爬虫類名を表します。複数の爬虫類ファイルを実行するには、まずすべての爬虫類ファイルを取得してください。process.spider_loader.list() 実現する。
(2)実現プロセス:
a、spiderディレクトリの同級ディレクトリの下でソースコードを格納するフォルダmycmdを作成し、このディレクトリの下でファイルmyscrawl.pyを作成する。
b、crawl.pyを のコードをmyscrawl.pyにコピーします。 ファイルで変更します。

#    run()   
  def run(self, args, opts):
    #      
    spd_loader_list = self.crawler_process.spider_loader.list()
    #     
    for spname in spd_loader_list or args:
      self.crawler_process.crawl(spname, **opts.spargs)
      print("       :"+spname)
    self.crawler_process.start()
同時に変更できます。

 def short_desc(self):
    return "Run all spider"
c、mycmdフォルダの下に初期化ファイルを追加します。init_.pyでは、プロジェクトプロファイルに「COMMANDS(u)を追加します。MODULES='プロジェクトコアディレクトリ.カスタムコマンドソースディレクトリ'の構成;
例えば、COMMANDS(u)MODULE='firstpjt.mycmd'
その後、コマンド「scrapy-h」を通じて、私たちが追加したコマンドmycrawlを確認することができます。
これで複数の爬虫類ファイルを同時に起動できます。コマンドを使います。

scrapy mycrawl --nolog

ここで、Scripy爬虫類ファイルの大量運行の実現に関する記事を紹介します。Scarapyの大量運行内容については、以前の文章を検索したり、下記の関連記事を見たりしてください。これからもよろしくお願いします。