のリストで返される Web サイトをスクレイピングしていますurls
。例 -scrapy crawl xyz_spider -o urls.csv
urls.csv
ファイルに追加するのではなく、新しいファイルを作成したいのですが、今はまったく問題なく動作data
しています。有効にするためにできるパラメーターの受け渡しはありますか?
のリストで返される Web サイトをスクレイピングしていますurls
。例 -scrapy crawl xyz_spider -o urls.csv
urls.csv
ファイルに追加するのではなく、新しいファイルを作成したいのですが、今はまったく問題なく動作data
しています。有効にするためにできるパラメーターの受け渡しはありますか?
残念ながら、現時点ではスクレイピーはこれを行うことができません。
ただし、github には提案された機能強化があります: https://github.com/scrapy/scrapy/issues/547
ただし、出力を stdout にリダイレクトし、それをファイルにリダイレクトすることは簡単にできます。
scrapy crawl myspider -t json --nolog -o - > output.json
-o -
マイナスへの出力を意味し、この場合マイナスは標準出力を意味します。
次のように、scrapy を実行する前にファイルを削除するためのエイリアスを作成することもできます。
alias sc='-rm output.csv && scrapy crawl myspider -o output.csv'
私は通常、Scrapy を Python スクリプトとして実行し、Spider クラスを呼び出す前にファイルを開くことで、カスタム ファイルのエクスポートに取り組みます。これにより、csv ファイルの処理とフォーマットの柔軟性が向上し、Web アプリの拡張機能として実行したり、クラウドで実行したりすることもできます。次の行の何か:
import csv
if __name__ == '__main__':
process = CrawlerProcess()
with open('Output.csv','wb') as output_file:
mywriter = csv.write(output_file)
process.crawl(Spider_Class, start_urls = start_urls)
process.start()
process.close()