亲宝软件园·资讯

展开

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就不受影响!

加载全部内容

相关教程
猜你喜欢
用户评论