今天咱们继续介绍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初探(Ⅰ)