scrapy中的spider传参实现增量的方法

有时候需要根据项目的实际需求向spider传递参数来控制spider的运行方式。

比如说,1.根据用户提交的url来控制spider爬取的网站。2.根据需求增量爬取数据。

今天就写一个增量(augmenter)的方式:

Spider参数通过 crawl 命令的 -a 选项来传递,比如:

scrapy crawl xxx -a augmenter=xxxxxx

注:augmenter=不为空

1.首先在spider里添加

scrapy中的spider传参实现增量的方法_第1张图片

注:在网上也看了不少的博客,最后发现*args, **kwargs这两个必须加上,要不然会出现bug,不信的话可以试试哦!

如果想减少代码量的话,可以写到类里面去继承!那这样的话,spider里面就不要在写了!!!要不然就不起作用了!!!

还有

super(eval(self.__class__.__name__), self).__init__(*args, **kwargs)

这里的eval()获取的是类名,这样写必须是最后一个是你要的类名,中间有继承什么的,就会出错!或者直接把类名粘过来!

2.spider实现方式:

scrapy中的spider传参实现增量的方法_第2张图片

这样就实现了简单的增量!增量的方式有很多,常见的:时间、计数、爬取特定的几页!

选择自己需要的增量方式写在这个parse_augmenter()里面,

这样需要从头开始run和增量run就不受影响!

到此这篇关于scrapy中的spider传参实现增量的方法的文章就介绍到这了,更多相关scrapy spider传参增量内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

你可能感兴趣的:(scrapy中的spider传参实现增量的方法)