Python爬虫进阶(七)——爬虫之Scrapy初探(Ⅱ)

19 篇文章 3 订阅

今天咱们继续介绍scrapy模块的使用。

一、pipelines部分拓展
二、logging模块基本操作

一、pipelines部分拓展

1.管道的优先级

上次咱们讲了管道是有优先级的,那么这次咱们继续定义一个管道,并把数字设为301,看看运行之后的效果。
在这里插入图片描述
这里添加一个键值对,看看运行后有没有所有数据都加上了,从而验证优先级

class MyspiderPipeline:
    def process_item(self, item, spider):
        item['hello'] = 'world'
        print(item)
        return item

class MyspiderPipeline1:
    def process_item(self, item, spider):
        print('这是管道2')

运行之后,结果如下:
在这里插入图片描述
现在看,管道1是优先级最高,先执行的。

2.验证管道传递数据的来源

有了管道的帮助,咱们便可以创建多个爬虫文件,在不同的管道中传递、收集数据

比如咱们上次创建的名为db.py的爬虫文件,在这个文件中,对解析函数加入如下字段:

item['come_from'] = 'db'

再在pipelines文件中加入爬虫识别条件(有两种方法,一种是查询爬虫的名字,另一种是打印之前加入的字段来源):

class MyspiderPipeline:
    def process_item(self, item, spider):
        # print(item)
        # 方法1
         print(item['come_from'])

        # 方法2
         if spider.name == 'db':
             print(spider.name)
        return item

运行后结果如下,验证了管道数据的来源
在这里插入图片描述

二、logging模块基本操作

很多时候,咱们会在运行爬虫的时候出现一些错误,如果能有一个日志来收集问题,就能够更直观的看出有哪些问题,这就是logging模块**的作用。所有问题都放到了logging中了。

1.如果想看到警告信息

先导入logging模块:

import logging

在jd.py文件中,解析函数parse()中加入如下代码:

logging.warning('this is warning!')

运行start,结果如下:
在这里插入图片描述

2.如果想看到警告信息的来源

在class类前加上:

logger = logging.getLogger(__name__)

在解析函数里加上:

logger.warning('this is warning!')

运行后,结果如下:
在这里插入图片描述
可见,此时已经找到了警告信息的来源。

3.如果想将警告信息保存到一个文件中

咱们先在setting设置文件中加入一个字段:LOG_FILE = ‘./log.log’,这就相当于设置了一个专门保存警告信息的文件。
在这里插入图片描述
运行start文件,发现没有报出信息,而是新增了一个名为log.log的文件。
在这里插入图片描述
点看log文件,信息如下:
在这里插入图片描述
原来警告信息来到这个文件了。问题都能到这里找了。且同一爬虫的错误不会覆盖,都能收集到这里。

若要看其他文件,如pipelines文件的警告信息,就在pipelines文件中先导入logging模块,再添加和前面相同的字段,运行后就能在log文件中出现关于pipeline的警告信息了。
在这里插入图片描述
结果如图:
在这里插入图片描述
今后定位错误时,运用logging模块会比较多。

今天的scrapy使用就介绍到这里,下一章会进入scrapy框架实战。

 
 
 
实战部分
第一篇:Python爬虫实战之 爬取全国理工类大学数量+数据可视化
第二篇:Python爬虫实战之 爬取王者荣耀皮肤

爬虫基础部分
第一篇:Python的要点(搭建环境、安装配置、第三方库导入方法详细过程)
第二篇:Python爬虫初探(一)——了解爬虫
第三篇:Python爬虫初探(二)——爬虫的请求模块
第四篇:Python爬虫初探(三)——爬虫之正则表达式介绍
第五篇:Python爬虫初探(四)——爬虫之正则表达式实战(爬取图片)
第六篇:Python爬虫初探(五)——爬虫之xpath与lxml库的使用
第七篇:Python爬虫初探(六)——爬虫之xpath实战(爬取高考分数线信息)
第八篇:Python爬虫初探(七)——爬虫之Beautifulsoup4介绍(Ⅰ)
第九篇:Python爬虫初探(八)——爬虫之Beautifulsoup4介绍(Ⅱ)
第十篇:Python爬虫初探(九)——爬虫之Beautifulsoup4实战(爬取豆瓣信息)
第十一篇:Python爬虫初探(十)——爬虫总结

爬虫进阶部分
第一篇:Python爬虫进阶(一)——爬虫之动态数据与selenium
第二篇:Python爬虫进阶(二)——爬虫之多任务模块(Ⅰ)
第三篇:Python爬虫进阶(三)——爬虫之多任务模块(Ⅱ)
第四篇:Python爬虫进阶(四)——爬虫之多任务模块(Ⅲ)
第五篇:Python爬虫进阶(五)——爬虫之多线程爬虫实战(爬取王者荣耀皮肤)
第六篇:Python爬虫进阶(六)——爬虫之Scrapy初探(Ⅰ)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值