[英]Scrapy - Use feed exporter for a particular spider (and not others) in a project
环境:Windows7、Python 3.6.5、Scrapy 1.5.1
问题描述:
我有一个名为project_github
的爬虫项目,其中包含 3 个蜘蛛: spider1
、 spider2
、 spider3
。 这些蜘蛛中的每一个都将数据从特定网站个人抓取到该蜘蛛。
我试图在执行特定蜘蛛时自动导出一个 JSON 文件,格式为: NameOfSpider_TodaysDate.json
,以便从命令行我可以:
执行脚本scrapy crawl spider1
返回spider1_181115.json
目前我在settings.py
使用ITEM EXPORTERS
和以下代码:
import datetime
FEED_URI = 'spider1_' + datetime.datetime.today().strftime('%y%m%d') + '.json'
FEED_FORMAT = 'json'
FEED_EXPORTERS = {'json': 'scrapy.exporters.JsonItemExporter'}
FEED_EXPORT_ENCODING = 'utf-8'
显然这段代码总是写spider1_TodaysDate.json
而不管使用的蜘蛛......有什么建议吗?
这样做的方法是将custom_settings
定义为特定蜘蛛下的class
属性,正在为其编写项目导出器。 Spider 设置会覆盖项目设置。
所以,对于spider1
:
class spider1(scrapy.Spider):
name = "spider1"
allowed_domains = []
custom_settings = {
'FEED_URI': 'spider1_' + datetime.datetime.today().strftime('%y%m%d') + '.json',
'FEED_FORMAT': 'json',
'FEED_EXPORTERS': {
'json': 'scrapy.exporters.JsonItemExporter',
},
'FEED_EXPORT_ENCODING': 'utf-8',
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.