关于python:Scrapy-在管道中删除项目字段?

Scrapy - Drop item field in pipeline ?

因此,我有一个item['html']字段,该字段是MyExamplePipeline所必需的,但是在处理之后,不需要将其存储到具有MongoDBPipeline的数据库中。有没有办法只删除字段html并保留其余项目?作为将页面html从Spider传递到管道的项目的一部分,它是必需的,但是我无法弄清楚如何删除它。我在提到的这篇SO帖子中提到了使用FEED_EXPORT_FIELDS或fields_to_export,但是问题是我不想使用项目导出器,我只想将项目输入到下一个MongoDBPipeline中。有没有办法在Scrapy中做到这一点?谢谢!


您可以轻松地做到这一点。在您的MongoDBPipeline中,您需要执行以下

1
del item['html']

如果这会影响另一个管道中的项目,请使用copy.deepcopy并创建项目对象的副本,然后在插入mongodb

之前删除html