2017-02-18 28 views
0

我正在處理一個腳本,該腳本會轉到特定的網站並收集信息,收集信息後應將其保存到文件中(如果它保存得更好它到數據庫)。我閱讀了FEED EXPORT和Pipelines,但我是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" 
相關問題