Scrapyで実行するたび自動でCSV出力する方法


Scrapyを用いてスクレイピングを行い、その結果をCSVファイルに出力するには、Scrapyのitem PipelineとFeed Exportsという機能を利用します。


items.py

import scrapy

class MyItem(scrapy.Item):
  title = scrapy.Field()  # (title)を定義する
  url = scrapy.Field()  # (url)を定義する



spiderでitemを生成しyieldで値を返す

class MySpider(scrapy.Spider):
  name = 'my_spider'
   
  def parse(self, response):
    item = MyItem()
    item['title'] = response.xpath('//title/text()').get()
    item['url'] = response.url
    yield item



settings.pyで追加記入

FEED_FORMAT = 'csv'
FEED_URI = 'result.csv'

result.csvという名前でファイルに保存される