codecamp

scrapy 2.3 自定义日志格式

可以通过扩展为不同的操作设置自定义日志格式 ​LogFormatter​ 课程和制作 ​LOG_FORMATTER​ 指向你的新班级。

classscrapy.logformatter.LogFormatter

用于为不同操作生成日志消息的类。

所有方法都必须返回一个列出参数的字典 level , msg 和 args 调用时将用于构造日志消息 logging.log .

方法输出的字典键:

  • level 是该操作的日志级别,可以使用 python logging library : logging.DEBUG , logging.INFO , logging.WARNING , logging.ERROR 和 logging.CRITICAL .

  • msg 应该是可以包含不同格式占位符的字符串。此字符串,格式为 args ,将是该行动的长期信息。

  • args 应该是一个tuple或dict,其中的格式占位符为 msg .最后的日志消息计算为 msg % args .

用户可以定义自己的 LogFormatter 如果要自定义每个操作的日志记录方式,或者希望完全忽略它,则初始化。为了省略记录操作,该方法必须返回 None .

以下是有关如何创建自定义日志格式化程序以降低从管道中删除项时日志消息的严重性级别的示例:

class PoliteLogFormatter(logformatter.LogFormatter):
    def dropped(self, item, exception, response, spider):
        return {
            'level': logging.INFO, # lowering the level from logging.WARNING
            'msg': "Dropped: %(exception)s" + os.linesep + "%(item)s",
            'args': {
                'exception': exception,
                'item': item,
            }
        }
crawled(requestresponsespider)

当爬虫找到网页时记录一条消息。

download_error(failurerequestspidererrmsg=None)

记录来自spider的下载错误消息(通常来自引擎)。

2.0 新版功能.

dropped(itemexceptionresponsespider)

当某个项在通过项管道时被丢弃时,记录该消息。

item_error(itemexceptionresponsespider)

当一个项目在通过项目管道时出错时,记录消息。

2.0 新版功能.

scraped(itemresponsespider)

当一个项目被蜘蛛抓取时记录一条消息。

spider_error(failurerequestresponsespider)

记录来自spider的错误消息。

2.0 新版功能.

scrapy 2.3 命令行选项
scrapy 2.3 高级自定义
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

scrapy 2.3 链接提取器

scrapy 2.3 统计数据集合

scrapy 2.3 发送电子邮件

scrapy 2.3 蜘蛛合约

scrapy 2.3 如何部署蜘蛛

scrapy 2.3 AutoThrottle扩展

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }