如何在 settings.py 中动态创建带有蜘蛛名称的日志文件?
How can I create log file with spider name in settings.py dynamically?
我有 20 个不同的蜘蛛,它们按计划工作。一天结束时,当我检查日志文件时,我得到了超过 15.000 行日志。
我最近的日志设置在settings.py
from datetime import datetime
now = datetime.today()
now_time = now.strftime("%d.%m.%y")
LOG_FORMAT = '%(levelname)s: %(message)s'
LOG_FILE = 'scrapy-log-'+now_time+'.txt'
但我想根据蜘蛛名称准备日志文件,例如
我对 settings.py
的期望
from datetime import datetime
now = datetime.today()
now_time = now.strftime("%d.%m.%y")
LOG_FORMAT = '%(levelname)s: %(message)s'
LOG_FILE = spider_name+now_time+'.txt'
但是我不知道如何在抓取所有蜘蛛时动态获取spider_name。
所以问题是如何在 settings.py 中动态使用 spider_name?
您可以在实例化蜘蛛时尝试覆盖设置。像这样:
class YourSpider(CrawlSpider):
start_urls = ['http://website.com']
allowed_domains = ['www.website.com']
name = 'spider_name'
custom_settings = {
'LOG_FILE' = name+now_time+'.txt',
}
请参阅文档 https://docs.scrapy.org/en/latest/topics/settings.html
中的“2. 每个蜘蛛的设置”部分
我有 20 个不同的蜘蛛,它们按计划工作。一天结束时,当我检查日志文件时,我得到了超过 15.000 行日志。
我最近的日志设置在settings.py
from datetime import datetime
now = datetime.today()
now_time = now.strftime("%d.%m.%y")
LOG_FORMAT = '%(levelname)s: %(message)s'
LOG_FILE = 'scrapy-log-'+now_time+'.txt'
但我想根据蜘蛛名称准备日志文件,例如
我对 settings.py
的期望from datetime import datetime
now = datetime.today()
now_time = now.strftime("%d.%m.%y")
LOG_FORMAT = '%(levelname)s: %(message)s'
LOG_FILE = spider_name+now_time+'.txt'
但是我不知道如何在抓取所有蜘蛛时动态获取spider_name。
所以问题是如何在 settings.py 中动态使用 spider_name?
您可以在实例化蜘蛛时尝试覆盖设置。像这样:
class YourSpider(CrawlSpider):
start_urls = ['http://website.com']
allowed_domains = ['www.website.com']
name = 'spider_name'
custom_settings = {
'LOG_FILE' = name+now_time+'.txt',
}
请参阅文档 https://docs.scrapy.org/en/latest/topics/settings.html
中的“2. 每个蜘蛛的设置”部分