logging模块使用
为了让我们自己希望输出到终端的内容能容易看一些:
我们可以在setting中设置log级别
在setting中添加一行(全部大写):LOG_LEVEL = "WARNING”
默认终端显示的是debug级别的log信息
1. 使用 WARNING 打印出信息
import logging # 导入模块 '''可以把当前的py文件所在的位置显示出来''' logger = logging.getLogger(__name__) '''使用logger打印出信息''' logger.warning()
创建 名为scrapyTest的爬虫,域名为: quotes.toscrape.com scrapy genspider scrapyTest quotes.toscrape.com
在scrapyTest,py里面加上log信息,打印循环次数
# -*- coding: utf-8 -*- import scrapy import logging '''可以把当前的py文件所在的位置显示出来''' logger = logging.getLogger(__name__) class ScrapytestSpider(scrapy.Spider): name = 'scrapyTest' allowed_domains = ['quotes.toscrape.com'] start_urls = ['http://quotes.toscrape.com/'] def parse(self, response): for i in range(1, 11): item = {"循环次数": str(i)} logger.warning(item) yield item
还可以在pipelines.py加上log信息,要加的话就要到settings.py里面开启pipeline:
'''开启pipeline,只需到settings.py里面把下面的注释去掉就行''' ITEM_PIPELINES = { 'PipelineTest.pipelines.PipelinetestPipeline': 300, }
pipelines.py
import logging logger = logging.getLogger(__name__) class PipelinetestPipeline(object): def process_item(self, item, spider): logging.warning("*-*pipeline的warning信息*-*") return item
然后运行,查看结果 scrapy crawl scrapyTest
打印的结果 里面包括 日期、时间、还有当前py文件的路径和名称,以及设置的打印信息
2. 把log的信息保存到本地
在settings.py里面添加上
LOG_FILE = "./log.log"
然后运行程序,没有打印信息,但是log的信息全部保存到了当前爬虫项目下的log.log,打开文件会发现和打印的信息是一样的
3. logging也可以用在普通的项目中使用
import logging
logging.basicConfig(...) #设置日志输出的样式,格式
实例化一个`logger=logging.getLogger(__name__)`
在任何py文件中调用logger即可
Scrapy框架的学习(4.scrapy中的logging模块记录日志文件以及普通的项目中使用)
猜你喜欢
转载自blog.csdn.net/wei18791957243/article/details/86233959
今日推荐
周排行