Scrapy框架的学习(4.scrapy中的logging模块记录日志文件以及普通的项目中使用)
?logging模塊使用
? ? 為了讓我們自己希望輸出到終端的內(nèi)容能容易看一些:
? ? ? ? ? ??我們可以在setting中設(shè)置log級別
? ? ? ? ? ?在setting中添加一行(全部大寫):LOG_LEVEL = "WARNING”
? ? ? ? ? ??默認(rèn)終端顯示的是debug級別的log信息
1. 使用? WARNING? 打印出信息
import logging # 導(dǎo)入模塊'''可以把當(dāng)前的py文件所在的位置顯示出來''' logger = logging.getLogger(__name__)'''使用logger打印出信息''' logger.warning()創(chuàng)建 名為scrapyTest的爬蟲,域名為:?quotes.toscrape.com? ? ? scrapy genspider scrapyTest quotes.toscrape.com
? ?在scrapyTest,py里面加上log信息,打印循環(huán)次數(shù)
# -*- coding: utf-8 -*- import scrapy import logging'''可以把當(dāng)前的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 = {"循環(huán)次數(shù)": 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 logginglogger = logging.getLogger(__name__)class PipelinetestPipeline(object):def process_item(self, item, spider):logging.warning("*-*pipeline的warning信息*-*")return item然后運行,查看結(jié)果??scrapy crawl scrapyTest
打印的結(jié)果? 里面包括? ?日期、時間、還有當(dāng)前py文件的路徑和名稱,以及設(shè)置的打印信息
2. 把log的信息保存到本地
? ?在settings.py里面添加上
LOG_FILE = "./log.log"然后運行程序,沒有打印信息,但是log的信息全部保存到了當(dāng)前爬蟲項目下的log.log,打開文件會發(fā)現(xiàn)和打印的信息是一樣的
3. logging也可以用在普通的項目中使用
? ? ?import logging
? ? ?logging.basicConfig(...) #設(shè)置日志輸出的樣式,格式
? ? ?實例化一個`logger=logging.getLogger(__name__)`
? ? ?在任何py文件中調(diào)用logger即可
總結(jié)
以上是生活随笔為你收集整理的Scrapy框架的学习(4.scrapy中的logging模块记录日志文件以及普通的项目中使用)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Scrapy框架的学习(3.pipeli
- 下一篇: Scrapy框架的学习(5.scarpy