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级别来记录信息

  1.  
    from scrapy import log
  2.  
    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 那么运行程序会创建一个新文件,然后把所有的日志都保存到里面。

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

最新文章

  1. 前端自动化工具gulp自动添加版本号
  2. chrome浏览器定位页面元素对应代码查找资源
  3. Git:错误:error:src refspec master does not match any
  4. input输入子系统
  5. php mysqli扩展之预处理
  6. 【英语】Bingo口语笔记(63) - 一个单词的多种发音
  7. 【面试题】Https
  8. C#基础精华03(常用类库StringBuilder,List<T>泛型集合,Dictionary<K , V> 键值对集合,装箱拆箱)
  9. WordPress标题函数wp_title()详解
  10. (转)Android中截取当前屏幕图片
  11. java面板设计
  12. NYoj-Binary String Matching-KMP算法
  13. PHP获取随机数
  14. 快速搭建Japser Report
  15. AIDL使用以及原理分析
  16. 熟悉常用的HDFS操作
  17. .NET下对Web.config与App.Config的增删改操作的代码
  18. 用JS实现实时显示系统时间
  19. JS刷新当前页面的几种方法总结
  20. 2_Linux操作系统和基础命令行

热门文章

  1. head first python /chapter7 web(python 3 转 python 2.7)
  2. [CF Round #278] Tourists
  3. 2016/10/29 Action类中execute方法的使用
  4. java IO流 复制图片
  5. UWP Windows10开发获取设备位置(经纬度)
  6. 外文翻译 《How we decide》赛场上的四分卫 第二节
  7. mysql之通过cmd连接远程数据库
  8. 冒泡排序算法和简单选择排序算法的js实现
  9. 12. binary search Trees
  10. How do I get started with Node.js