无法使Scrapy管道工作

8 投票
2 回答
7758 浏览
提问于 2025-04-16 06:30

我写了一个爬虫,使用的是Scrapy这个框架。不过,我在让数据处理管道(pipelines)工作时遇到了一些麻烦。在我的pipelines.py文件里,有以下这段代码:

class FilePipeline(object):

    def __init__(self):
        self.file = open('items.txt', 'wb')

    def process_item(self, item, spider):
        line = item['title'] + '\n'
        self.file.write(line)
        return item

而我的CrawlSpider子类里有这一行代码,用来激活这个类的管道。

ITEM_PIPELINES = [
        'event.pipelines.FilePipeline'
    ]

但是当我运行它的时候,使用的是

scrapy crawl my_spider

我看到一行提示:

2010-11-03 20:24:06+0000 [scrapy] DEBUG: Enabled item pipelines:

没有任何管道(我猜这应该是日志输出的地方)。

我试着查看文档,但似乎没有完整的项目示例来帮助我确认是否遗漏了什么。

有没有什么建议可以让我接下来尝试的?或者我该去哪里找更多的文档?

2 个回答

0

我敢打赌,这里可能是因为“pipeline”这个词的大小写不一致导致的问题:

Pipeline 和 PipeLine

我注意到 'event.pipelines.FilePipeline' 用的是前者,而你的代码用的是后者:你的文件名用的是哪个呢?

我自己也因为这个拼写错误吃过很多亏!

8

明白了!这行代码需要放在项目的设置模块里。现在可以正常工作了!

撰写回答