Scrapy框架的学习(4.scrapy中的logging模块记录日志文件以及普通的项目中使用)

 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即可

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
Scrapy ,可以通过使用内置的 logging 模块来输出 log 到控制台。Scrapy 提供了多个级别的 log,包括 DEBUG、INFO、WARNING 和 ERROR,你可以根据需要选择合适的级别。 以下是在 Spider 输出 log 的示例代码: ```python import scrapy import logging class MySpider(scrapy.Spider): name = 'my_spider' start_urls = ['http://example.com'] def parse(self, response): # 输出 DEBUG 级别的 log logging.debug('This is a debug message') # 输出 INFO 级别的 log logging.info('This is an info message') # 输出 WARNING 级别的 log logging.warning('This is a warning message') # 输出 ERROR 级别的 log logging.error('This is an error message') ``` 在这个示例,我们使用logging 模块的四个级别来输出 log。如果你在 Spider 使用 log,那么你需要在 Spider 的类定义添加一个 logger 对象,并设置它的名称。这个名称通常是 Spider 的名称,例如上面的代码的 `name = 'my_spider'`。 Scrapy 还提供了一个方便的快捷方法来输出 log,就是使用 Spider 的 `log` 方法。这个方法和 logging 模块的方法类似,只是它会自动添加 Spider 的名称作为 logger 的名称,而不需要你手动指定。例如: ```python import scrapy class MySpider(scrapy.Spider): name = 'my_spider' start_urls = ['http://example.com'] def parse(self, response): # 输出 INFO 级别的 log self.log('This is an info message', level=scrapy.logging.INFO) ``` 这个示例,我们使用了 Spider 的 `log` 方法来输出 INFO 级别的 log。注意,我们需要指定 `level` 参数来指定 log 的级别。默认情况下,`log` 方法会使用 DEBUG 级别。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

还是那个同伟伟

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值