我有3个Spider文件和类。而且我想将项目信息保存在csv文件中,该文件具有不同的文件名被告,即搜索条件的变量参数。为此,我需要访问Spider类参数。
所以我的问题是三个。
logger = logging.getLogger(__name__)
在pipelines.py
中不起作用
如何打印该信息?以下是我的日志代码样式
logger.log(logging.INFO,'\n======= %s ========\n', filename)
我已经在Google搜索了很多次了。但是我找不到解决方案。
我确实尝试过使用from_crawler函数,但找不到适配情况
Scrapy 1.6.0
python 3.7.3
os window 7 / 32bit
代码:
class CensusGetitemSpider(scrapy.Spider):
name = 'census_getitem'
startmonth=1
filename = None
def parse(self, response):
for x in data:
self.filename = str(startmonth+1)
.
.
.
yield item
yield scrapy.Request(link, callback=self.parse)
答案 0 :(得分:0)
spider
参数从pipeline.py访问蜘蛛类和实例属性。例如,:
open_spider(self, spider):
self.filename = spider.name
您可以在https://docs.scrapy.org/en/latest/topics/item-pipeline.html
上查看有关项目管道的更多信息 scrapy crawl yourspider -o output.csv
但是,如果您确实需要从Spider进行设置,则可以为每个Spider使用自定义设置,例如:
class YourSpider(scrapy.Spider):
name = 'yourspider'
start_urls = 'www.yoursite.com'
custom_settings = {
'FEED_URI':'output.csv',
'FEED_FORMAT': 'csv',
}
spider.logger.info('Your message')