当前位置: 首页 > 文档资料 > Python 全栈 >

9. Scrapy扩展

优质
小牛编辑
145浏览
2023-12-01

1. 如何使scrapy爬取信息不打印在命令窗口中

  • 通常,我们使用这条命令运行自己的scrapy爬虫:
scrapy crawl spider_name
  • 但是,由这条命令启动的爬虫,会将所有爬虫运行中的debug信息及抓取到的信息打印在运行窗口中。
  • 很乱,也不方便查询。所以,可使用该命令代替:
scrpay crawl spider_name  -s LOG_FILE=all.log

2. Scrapy中的日志处理

  • Scrapy提供了log功能,可以通过 logging 模块使用
  • 可以修改配置文件settings.py,任意位置添加下面两行
LOG_FILE = "mySpider.log"
LOG_LEVEL = "INFO"
  • Scrapy提供5层logging级别:
CRITICAL - 严重错误(critical)
ERROR - 一般错误(regular errors)
WARNING - 警告信息(warning messages)
INFO - 一般信息(informational messages)
DEBUG - 调试信息(debugging messages)
  • logging设置

  • 通过在setting.py中进行以下设置可以被用来配置logging:

LOG_ENABLED 默认: True,启用logging
LOG_ENCODING 默认: 'utf-8',logging使用的编码
LOG_FILE 默认: None,在当前目录里创建logging输出文件的文件名
LOG_LEVEL 默认: 'DEBUG',log的最低级别
LOG_STDOUT 默认: False 如果为 True,进程所有的标准输出(及错误)将会被重定向到log中。例如,执行 print "hello" ,其将会在Scrapy log中显示
  • 记录信息
  • 下面给出如何使用WARING级别来记录信息
from scrapy import log
log.msg("This is a warning", level=log.WARNING)