Scrapy生成的调试信息非常有用,但是通常太啰嗦,你可以在Scrapy项目中的setting.py中设置日志显示等级:

LOG_LEVEL = 'ERROR'

日志级别

Scrapy日志有五种等级,按照范围递增顺序排列如下:(注意《Python网络数据采集》书中这里有错)

  • CRITICAL - 严重错误
  • ERROR - 一般错误
  • WARNING - 警告信息
  • INFO - 一般信息
  • DEBUG - 调试信息

如果日志层级设置为ERROR,那么只有CRITICAL和ERROR日志会显示出来。

如果日志层级设置为DEBUG,那么所有信息都会显示出来,其它同理。

设置log级别

可以通过终端选项 -loglevel/-L 或 LOG_LEVEL 来设置log级别。

记录信息

下面给出如何使用WARING级别来记录信息

from scrapy import log
log.msg("This is a warning", level=log.WARING)

  

在Spider中添加log

在spider中添加log的推荐方式是使用Spider的 log() 方法。该方法会自动在调用 scrapy.log.start() 时赋值 spider 参数。

其它的参数则直接传递给 msg() 方法

scrapy.log模块

scrapy.log.start(logfile=None, loglevel=None, logstdout=None)

  

启动log功能。该方法必须在记录任何信息之前被调用。否则调用前的信息将会丢失。

参数:

  • logfile(str) - 用于保存log输出的文件路径。如果被忽略,LOG_FILE设置会被启用。如果两个参数都是None(默认值),log会被输出到标准错误流(stderr),一般都直接打印在终端命令行中。
  • loglevel - 记录的最低日志级别,可用的值在上面提到了
  • logstdout(boolean) - 如果设置为True,所有的应用的标准输出(包括标准错误)都将记录,例如,如果程序段中有 "print hello",那么执行到这里时,"hello"也会被记录到日志中。
scrapy.log.msg(message,level=INFO,spider=None)

  

记录信息

参数:

  • message(str) - log信息
  • level - 该信息对应的级别
  • spider(spider 对象) - 记录信息的spider。当记录的信息和特定的spider有关联时,该参数必须使用

默认情况下日志显示在终端,但也可以通过下面的命令输出到一个独立的文件中:

$scrapy crawl spiderName -s LOG_FILE=spider.log (注意这里等号两边没有空格)

  

或者上面提到的 start() 中参数指定输出文件位置。

如果目录中没有spider.log 那么运行程序会创建一个新文件,然后把所有的日志都保存到里面。

如果已经存在,会在原文后面追加新的日志内容。

scrapy 日志处理的更多相关文章

  1. Windows10 下安装scrapy 日志

    Windows10 下安装scrapy 日志 1.下载python3.6 2.添加python.exe和pip.exe的路径到系统环境变量path中 如c:\python36_64 C:\Python ...

  2. python爬虫-scrapy日志

    1.scrapy日志介绍 Scrapy的日志系统是实现了对python内置的日志的封装 scrapy也使用python日志级别分类 logging.CRITICAL logging.ERROE log ...

  3. Scrapy日志等级以及请求传参

    日志等级 请求传参 提高scrapy的爬取效率 日志等级 - 日志信息:   使用命令:scrapy crawl 爬虫文件 运行程序时,在终端输出的就是日志信息: - 日志信息的种类: - ERROR ...

  4. scrapy 日志一般配置

  5. scrapy框架post请求发送,五大核心组件,日志等级,请求传参

    一.post请求发送 - 问题:爬虫文件的代码中,我们从来没有手动的对start_urls列表中存储的起始url进行过请求的发送,但是起始url的确是进行了请求的发送,那这是如何实现的呢? - 解答: ...

  6. Scrapy 教程(九)-日志系统

    最新版本的 scrapy 已经废弃了 scrapy.log 的使用,赞成显示调用python标准日志记录. Python 内建日志系统 import logging ### python 内建 log ...

  7. scrapy笔记集合

    细读http://scrapy-chs.readthedocs.io/zh_CN/latest/index.html 目录 Scrapy介绍 安装 基本命令 项目结构以及爬虫应用介绍 简单使用示例 选 ...

  8. 常用的scrapy setting

    原文请参考    Scrapy 爬虫入门教程十三 Settings(设置), 讲的很详细 官网参考  Settings 设置 Scrapy 设置允许您自定义所有 Scrapy 组件的行为,包括核心,扩 ...

  9. scrapy的简单使用以及相关设置属性的介绍

    0. 楔子(一个最简单的案例) 1.scrapy.Spider scrapy.spiders.Spider name allowed_domains start_urls custom_setting ...

随机推荐

  1. 基于Apache Spark机器学习的客户流失预测

    流失预测是个重要的业务,通过预测哪些客户可能取消对服务的订阅来最大限度地减少客户流失.虽然最初在电信行业使用,但它已经成为银行,互联网服务提供商,保险公司和其他垂直行业的通用业务. 预测过程是大规模数 ...

  2. (转)Thread的中断机制(interrupt)

    先看收集了别人的文章,全面的了解下java的中断: 中断线程 线程的thread.interrupt()方法是中断线程,将会设置该线程的中断状态位,即设置为true,中断的结果线程是死亡.还是等待新的 ...

  3. Linux下的python等操作【转载】

    转自:https://blog.csdn.net/healthy_coder/article/details/50546384 https://blog.csdn.net/boyun58/articl ...

  4. [LeetCode] 414. Third Maximum Number_Easy

    Given a non-empty array of integers, return the third maximum number in this array. If it does not e ...

  5. 一个简单的MapReduce示例(多个MapReduce任务处理)

    一.需求 有一个列表,只有两列:id.pro,记录了id与pro的对应关系,但是在同一个id下,pro有可能是重复的. 现在需要写一个程序,统计一下每个id下有多少个不重复的pro. 为了写一个完整的 ...

  6. .Net拾忆:HttpWebRequest/WebClient两种方式模拟Post

    一.代码 1.HttpWebRequest public static string DoPost( string target, string content ) { try { string pa ...

  7. 修改easydialog标题

    使用easyui作为前台框架极大的节省了项目资源,easyui官网文档中基本上囊括了所有的方法,但一些灵活性的方法文档中是找不到的,比如说动态替换窗口的属性,下边简单介绍些如何快速替换窗体的title ...

  8. @AfterThrowing

    @AfterThrowing(throwing="ex", pointcut="within(com.xms.controller.*)") public vo ...

  9. LA 2218 Triathlon(半平面交)

    Triathlon [题目链接]Triathlon [题目类型]半平面交 &题解: 做了2道了,感觉好像套路,都是二分答案,判断半平面交是否为空. 还有刘汝佳的代码总是写const +& ...

  10. 使用SQL Developer导入文件时出现的一个奇怪的问题

    SQL Developer 的版本是 17.3.1.279 当我导入文件的时候,在Data Preview 的阶段,发现无论选择还是取消选择 Header,文件中的第一行总会被当作字段名. 后来在Or ...