python - 如何在 settings.py 中动态创建带有蜘蛛名称的日志文件?
问题描述
我有 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. 每个蜘蛛的设置”部分
推荐阅读
- swift - SwiftUI 2 自定义 GraphicalDatePickerStyle()
- python - PySerial 读取问题
- maven - Gradle 管理传递依赖
- pygame - 我无法让移动模块键工作,我无法选择它们
- python - Pandas DataFrame 使用另一个 DataFrame 列过滤行
- php - Cakephp media() 不允许变量链接.. 导致 preg_match() 错误
- python - 在 python 3 中保存特定文件名的问题
- java - 为什么会出现 ArrayOutOfBounds 异常?
- javascript - 如何查询 mapbox 地图的 json 对象属性?
- assembly - 为什么 Bochs 在简单的 mov 指令上崩溃