scrapy spider传参增量
retime123 人气:0有时候需要根据项目的实际需求向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就不受影响!
加载全部内容