Scrapy无法启用我的FilePipeline

时间:2015-06-25 22:32:22

标签: python file download scrapy pipeline

这是我的settings.py:

from scrapy.log import INFO


BOT_NAME = 'images'

SPIDER_MODULES = ['images.spiders']
NEWSPIDER_MODULE = 'images.spiders'
LOG_LEVEL = INFO

ITEM_PIPELINES = {
    "images.pipelines.WritePipeline": 800
}

DOWNLOAD_DELAY = 0.5

这是我的pipelines.py:

from scrapy import Request
from scrapy.pipelines.files import FilesPipeline


class WritePipeline(FilesPipeline):

    def get_media_requests(self, item, info):
        for url in item["file_urls"]:
            yield Request(url)

    def item_completed(self, results, item, info):
        return item

这是非常标准的,正常的东西。然而,这是我的日志中的一行:

2015-06-25 18:16:41 [scrapy] INFO: Enabled item pipelines: 

因此未启用管道。我在这做错了什么?我现在已经使用过几次Scrapy了,而且我相当肯定蜘蛛很好。该项目只是包含file_urlsfiles的正常项目。

2 个答案:

答案 0 :(得分:3)

哎呀,我忘了在设置中添加FILES_STORE。请查看here以获取解释。

相关引用:

  

然后,将目标存储设置配置为将用于存储下载图像的有效值。否则,管道将保持禁用状态,即使您将其包含在ITEM_PIPELINES设置中也是如此。

答案 1 :(得分:0)

我真的不知道FilesPipeline,但是对于您需要实现process_item(self, item, spider)方法的每个管道。