爬虫日记(62):Scrapy的合约测试

Posted caimouse

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了爬虫日记(62):Scrapy的合约测试相关的知识,希望对你有一定的参考价值。

在开发爬虫的过程中,经常遇到这种情况,比如几个星期之前编写的爬虫可以完美运行,突然有一天经理看不到数据了,这时就把你叫到他的办公室,开始对你训话了。你会有一肚子的不满,因为这段代码你确实加班加点来完成的,并且也通过了测试部门的测试,并且运行了几周时间。但结果是经理不满意,运维部门抱怨,测试人员工作量增加。面对此种情况,你一定会思考一个办法来改变这种情况,否则工作会不顺心,效率提不上去。

 

要解决上述的困境,可以使用蜘蛛类的合约测试来处理。这个合约测试有点像代码的单元测试,它可以让你快速地知道哪里有运行异常的问题。我们知道一个蜘蛛类主要就几个部分:网络地址是否访问正常、返回的数据是否正常、抓取的数据是否都在存。

 

针对上面三个问题,scrapy内部提供了三个合约测试函数:

class scrapy.contracts.default.UrlContract

 

该 contract(@url)设置了用于检查 spider 的其它 contract 状态的样例 url。该 contract 是必须的。所有缺失该 contract 的回调函数在测试时将被忽略:

 

以上是关于爬虫日记(62):Scrapy的合约测试的主要内容,如果未能解决你的问题,请参考以下文章

基于以太坊的智能合约solidity学习日记

62solidity环境搭建编译及编写合约-3——2020年07月12日12:55:51

爬取以太坊Solidity智能合约代码的简约Python爬虫

爬虫日记(63):Scrapy的设置参数-日志

爬虫日记(73):Scrapy程序运行入口点分析

爬虫日记(75):Scrapy的Settings源码分析