Scrapy爬虫中如何使用Logging模块

鳄鱼君

发表文章数:531

Vieu四代商业主题

高扩展、安全、稳定、响应式布局多功能模板。

¥69 现在购买
首页 » Python教程 » Scrapy爬虫中如何使用Logging模块

Logging模块的使用

其实我们在编写scrapy爬虫的时候,可以在settings文件中,添加log配置:

LOG_LEVEL="WARNING"#当前这个爬虫只会输出warning的日志,也就是不会显示info,debug等的其它日志信息
 

那么我们修改一下e1yu爬虫的代码,然后scrapy crawl e1yu:

import scrapy
import logging

class E1yuSpider(scrapy.Spider):
    name = 'e1yu'
    allowed_domains = ['http://e1yu.com/']
    start_urls = ['http://e1yu.com/']

    def parse(self, response):
        item={}
        item['come_from']='e1yu'
        for i in range(10):
            logging.warning(item)

 
2020-03-07 21:27:09 [root] WARNING: {'come_from': 'e1yu'}
 

那么日志的默认格式就是上面代码中的样子,有没有发现输出的结果跟我们平常启动爬虫不一样了。但是这个日志输出的格式不太是我们想要的结果,我们在爬虫e1yu中添加的日志显示的却是root,那么在别的文件中使用日志,同样也会是root,我们可以修改一下日志的输出样式:

import scrapy
import logging
logger=logging.getLogger(__name__)#

class E1yuSpider(scrapy.Spider):
    name = 'e1yu'
    allowed_domains = ['e1yu.com']
    start_urls = ['http://e1yu.com/']

    def parse(self, response):
        item={}
        item['come_from']='e1yu'
        for i in range(10):
            logger.warning(item)

 

再次运行代码就可以看到日志的格式变成了:

2020-03-07 21:34:12 [myspider.spiders.e1yu] WARNING: {'come_from': 'e1yu'}
2020-03-07 21:34:12 [myspider.spiders.e1yu] WARNING: {'come_from': 'e1yu'}

 

这样的话我们就能准确的看到日志输出的位置,我们可以在pipelines中加入日志:

import logging
logger=logging.getLogger(__name__)

class MyspiderPipeline(object):
    def process_item(self, item, spider):
        if spider.name=='e1yu':
            logger.warning('--'*20)

        return item


 

修改完成之后需要做的就是在settings文件中开启管道,然后爬虫文件需要yield item,这样pipelines才会接受的值。最后日志的输出结果:

2020-03-07 21:38:43 [myspider.spiders.e1yu] WARNING: {'come_from': 'e1yu'}
2020-03-07 21:38:43 [myspider.pipelines] WARNING: ----------------------------------------
2020-03-07 21:38:43 [myspider.spiders.e1yu] WARNING: {'come_from': 'e1yu'}
2020-03-07 21:38:43 [myspider.pipelines] WARNING: ----------------------------------------

 

那么我们还可以把日志信息保存到本地,方便我们查看,具体的做法就是在settings文件中再添加一个配置信息:

LOG_FILE="./log.log"#日志保存到当前路径下的log.log文件
 

添加之后再次运行爬虫文件,那么就会在本地的当前目录下看到log.log文件。这里我pycharm需要安装log插件,直接安装就可以。在普通的代码文件也可以使用log模块添加日志。更多关于logging日志模块的使用可参考:Logging库的使用详解

未经允许不得转载:作者:鳄鱼君, 转载或复制请以 超链接形式 并注明出处 鳄鱼君
原文地址:《Scrapy爬虫中如何使用Logging模块》 发布于2020-03-08

分享到:
赞(1) 赏杯咖啡

评论 抢沙发

7 + 5 =


文章对你有帮助可赏作者一杯咖啡

支付宝扫一扫打赏

微信扫一扫打赏

Vieu4.6主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。
切换注册

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录
切换登录

注册