网站地图 | RSS订阅 老铁博客 - 上海SEO优化|上海网站建设|蜘蛛池出租|站群代搭建
你的位置:首页 » 推广营销 » 正文

爬虫蜘蛛使用python内置日志记录系统Logging(38)python Scra教程151以上版本

2019-8-4 5:56:29 | 作者:老铁SEO | 0个评论 | 人浏览

  已被弃用于其函数,支持显式调用Python标准日志记录。继续阅读以了解有关新记录系统的更多信息。

  Scrapy使用Python的内置日志记录系统进行事件记录。我们将提供一些简单的示例来帮助您入门,但对于更高级的用例,强烈建议您仔细阅读其文档。

  日志记录开箱即用,并且可以在某种程度上使用记录设置中列出的Scrapy设置进行配置。

  Scrapy调用设置一些合理的默认值并在运行命令时在日志记录设置中处理这些设置,因此如果您从脚本中运行Scrapy中所述的脚本运行Scrapy,建议手动调用它。

  Python的内置日志记录定义了5个不同的级别来指示给定日志消息的严重性。以下是标准的,按降序排列:

  在任何标准5级别上都有用于发出日志消息的快捷方式,并且还有logginglog一种将给定级别作为参数的通用方法。如果需要,最后一个示例可以重写为:

  最重要的是,您可以创建不同的“记录器”来封装消息。(例如,通常的做法是为每个模块创建不同的记录器)。这些记录器可以独立配置,并允许分层构造。

  前面的示例在幕后使用根记录器,这是一个顶级记录器,所有消息都传播到该记录器(除非另有说明)。使用logging帮助程序只是显式获取根记录器的快捷方式,因此这也是最后一个代码段的等效内容:

  您只需使用logginggetLogger函数获取其名称即可使用其他记录器 :

  最后,您可以使用__name__变量填充当前模块的路径,确保为您正在处理的任何模块设置自定义记录器:

  Scrapylogger在每个Spider实例中提供了一个可以访问和使用的实例,如下所示:

  该记录器是使用Spider的名称创建的,但您可以使用任何您想要的自定义Python记录器。例如:

  记录器本身不管理如何显示通过它们发送的消息。对于此任务,可以将不同的“处理程序”附加到任何记录器实例,并将这些消息重定向到适当的目标,例如标准输出,文件,电子邮件等。

  前几个设置定义了日志消息的目标。如果LOG_FILE设置,则通过根记录器发送的消息将重定向到LOG_FILE以encoding编号 命名的文件LOG_ENCODING。如果未设置且LOG_ENABLED是True,则会在标准错误上显示日志消息。最后,如果LOG_ENABLED是False,则不会有任何可见的日志输出。

  LOG_LEVEL确定要显示的最低严重性级别,将过滤掉那些严重性较低的消息。它的范围是日志级别中列出的可能级别。

  如果LOG_SHORT_NAMES设置,则日志不会显示打印日志的scrapy组件。默认情况下未设置,因此日志包含负责该日志输出的scrapy组件。

  有可用于所有命令的命令行参数,可用于覆盖有关日志记录的某些Scrapy设置。

  由于Scrapy使用stdlib日志记录模块,因此您可以使用stdlib日志记录的所有功能自定义日志记录。

  例如,假设您正在抓取一个返回许多HTTP 404和500响应的网站,并且您希望隐藏所有这样的消息:

  接下来,我们可以看到消息具有INFO级别。要隐藏它,我们应该将日志级别设置为scrapy.spidermiddlewares.httperror高于INFO; INFO之后的下一级是警告。它可以用蜘蛛的__init__方法完成:

  如果install_root_handler为True(默认),则此函数还会根据给定的设置为根记录器创建处理程序(请参阅记录设置)。您可以使用settings参数覆盖默认选项。如果settings为空或无,则使用默认值。

  configure_logging在使用Scrapy命令时会自动调用,但在运行自定义脚本时需要显式调用。在这种情况下,不需要使用它,但建议使用它。

  如果您打算自己配置处理程序,仍然建议您调用此函数,并传递install_root_handler = False。请记住,在这种情况下默认情况下不会设置任何日志输出。

  要开始手动配置日志记录的输出,可以使用 logging.basicConfig()来设置基本的根处理程序。这是关于如何将INFO消息重定向或更高的消息到文件的示例:

  • 本文来自: 老铁博客,转载请保留出处!欢迎发表您的评论
  • 相关标签:蜘蛛爬虫  
  • 已有0位网友发表了一针见血的评论,你还等什么?

    必填

    选填

    记住我,下次回复时不用重新输入个人信息

    必填,不填不让过哦,嘻嘻。

    ◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。