2017-12-13 26 views
1

私はScrapyスパイダーを作成しました。しかし、私はスクリプトとしてそれを実行したい。私はこれをどうやってできるのか。スパイスパイダーをプログラムで簡単なスクリプトのように実行するにはどうすればよいですか?

$ scrapy crawl book -o book.json 

しかし、私はシンプルなPythonスクリプト

enter image description here

+0

'' book.json -o scrapyクロールブック '' 私はそれを実行したいです –

答えて

1

シェルスクリプトは大丈夫だろうようにそれを実行したい: 今私はターミナルで、このコマンドで実行することができていますか?次のように:

1

プロジェクトを使用せずにpythonスクリプトでスパイダーを直接実行できます。

あなたはscrapy.crawler.CrawlerProcessまたはscrapy.crawler.CrawlerRunner
を使用する必要がありますが、私はそれがPROJEKTのようにすべての機能を持っているかはわかりません。

は、ドキュメントの詳細情報:Common Practices

それともは、LinuxまたはWindows上の.batファイルにbashスクリプトにあなたのコマンドを置くことができます。

BTW:Linuxでは、最初の行(#!/bin/bash)にshebangを追加し、属性 "executable"を設定することができます -
ie。 chmod +x your_script - これは通常のプログラムとして実行されます。私たちは、簡単なスクリプトを実行するよう


の作業の例では、代わりに

#!/usr/bin/env python3 

import scrapy 

class MySpider(scrapy.Spider): 

    name = 'myspider' 

    allowed_domains = ['http://quotes.toqoute.com'] 

    #start_urls = [] 

    #def start_requests(self): 
    # for tag in self.tags: 
    #  for page in range(self.pages): 
    #   url = self.url_template.format(tag, page) 
    #   yield scrapy.Request(url) 

    def parse(self, response): 
     print('url:', response.url) 

# --- it runs without project and saves in `output.csv` --- 

from scrapy.crawler import CrawlerProcess 

c = CrawlerProcess({ 
    'USER_AGENT': 'Mozilla/5.0', 
    'FEED_FORMAT': 'csv', 
    'FEED_URI': 'output.csv', 
}) 
c.crawl(MySpider) 
c.start() 
関連する問題