2017-02-18 18 views
0

私は特定のウェブサイトに行き、情報を収集するスクリプトを作成しています。情報を収集した後、すべてをファイルに保存する必要がありますデータベースに)。私はFEED EXPORTとPIPELINEについて読んでいますが、私はPythonとScrapyの初心者ですので、まだ解決策が見つかりませんでした。Scrapyからの出力をファイルまたはデータベースに保存する方法

フィードエクスポートまたはパイプラインの使用方法は誰にでも分かりますか?私は文書を読むが、それは私には分かりません。ここに私のコードは、これまでのところです:

import scrapy 



class BrickSetSpider(scrapy.Spider): 
    name = "brickset_spider" 
    start_urls = ['http://brickset.com/sets/year-2016'] 

    def parse(self, response): 
     SET_SELECTOR = '.set' 
     for brickset in response.css(SET_SELECTOR): 

      NAME_SELECTOR = 'h1 a ::text' 
      PIECES_SELECTOR = './/dl[dt/text() = "Pieces"]/dd/a/text()' 
      MINIFIGS_SELECTOR = './/dl[dt/text() = "Minifigs"]/dd[2]/a/text()' 
      IMAGE_SELECTOR = 'img ::attr(src)' 
      yield { 
       'name': brickset.css(NAME_SELECTOR).extract_first(), 
       'pieces': brickset.xpath(PIECES_SELECTOR).extract_first(), 
       'minifigs': brickset.xpath(MINIFIGS_SELECTOR).extract_first(), 
       'image': brickset.css(IMAGE_SELECTOR).extract_first(), 
      } 

     NEXT_PAGE_SELECTOR = '.next a ::attr(href)' 
     next_page = response.css(NEXT_PAGE_SELECTOR).extract_first() 
     if next_page: 
      yield scrapy.Request(
       response.urljoin(next_page), 
       callback=self.parse 
      ) 

学習Pythonは私にはとても楽しいですが、私はこれで捕まってしまったと私は本当にそのスクリプトを仕事にする必要があります。ご提案やご協力をよろしくお願いいたします。

乾杯!

答えて

0

結果をCSVファイルに出力できます。

scrapy crawl nameofspider -o file.csv 
+0

しかし、それはコマンドcmdをされていませんか?私はスクリプトでデータを保存する必要があります。それ以外の場合は、スクリプトを実行するたびにそのコマンドを入力する必要があります。 – Zubru

0

あなたは自分の設定ファイルにFEED_FORMATFEED_URIを設定することができるはずです。特にパイプラインを気にする必要はありません。

settings.pyで)ような何か:

FEED_FORMAT = "csv" 
FEED_URI = "./myfile.csv" 
関連する問題