向scrapy中的spider传参,实现增量

xiaoxiao2021-02-28  43

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

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

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

 

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

scrapy crawl xxx -a augmenter=xxxxxx

注:augmenter=不为空

 

1.首先在spider里添加

 

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

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

还有

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

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

2.spider实现方式:

 

 

 

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

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

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

 

注:工作中的遇到的一些问题,可能我的方法不一定是最好的,大家一起相互交流+扣扣571848990

 

转载请注明原文地址: https://www.6miu.com/read-2620302.html

最新回复(0)