我有一个带有多个蜘蛛和多个管道的 Scrapy 项目。有没有办法告诉蜘蛛 A 使用管道 A 等???
我的 pipelines.py 有多个管道类,每个类都做不同的事情,我希望能够告诉蜘蛛使用特定的管道。
我看不到任何明显的方法来查看可用的scrapy命令来做到这一点......
我有一个带有多个蜘蛛和多个管道的 Scrapy 项目。有没有办法告诉蜘蛛 A 使用管道 A 等???
我的 pipelines.py 有多个管道类,每个类都做不同的事情,我希望能够告诉蜘蛛使用特定的管道。
我看不到任何明显的方法来查看可用的scrapy命令来做到这一点......
ITEM_PIPELINES
在引擎启动期间为项目中的所有蜘蛛全局定义设置。它不能动态更改每个蜘蛛。
这是你可以做的。定义应该通过管道本身的管道处理哪些蜘蛛。在您的管道的 process_item 方法中跳过/继续处理蜘蛛返回的项目,例如:
def process_item(self, item, spider):
if spider.name not in ['spider1', 'spider2']:
return item
# process item
另见:
希望有帮助。
可以在蜘蛛类的 custom_settings 属性中指定要使用的管道:
class BookSpider(BaseSpider):
name = "book_spider"
custom_settings = {
'ITEM_PIPELINES': {
'my_app.pipelines.BookPipeline': 300,
}
}
def parse(self, response):
return