废胡椒中的过滤项目

2024-10-01 02:39:30 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经从一个网页上删除了我想要的网址。现在我想用管道过滤关键字:

class GumtreeCouchesPipeline(object):

keywords = ['leather', 'couches']

def process_item(self, item, spider):
    if any(key in item['url'] for key in keywords):
        return item

问题是它现在什么也不回。在

蜘蛛:

^{pr2}$

如何使用管道过滤所有刮取的关键字URL? 谢谢!在


Tags: keyin网页管道objectdef关键字item
2条回答

这样可以解决您的问题:

class GumtreeCouchesPipeline(object):

    keywords = ['leather', 'couches']

    def process_item(self, item, spider):
        if any(key in item['url'] for key in self.keywords):
            return item

请注意,我使用self.keywords来引用keywords类属性。在

如果您查看蜘蛛日志,应该会发现一些错误,比如:NameError: name 'keywords' is not defined。在

不管怎样,我建议您像这样实现这个管道:

^{pr2}$

这样,在作业完成后,您就可以在作业统计中获得有关已删除项目的信息。在

从阅读文档来看,我认为你必须满足所有路径,例如

from scrapy.exceptions import DropItem

    def process_item(self, item, spider):
        keywords = ['leather', 'couches']
        if item['url']:
            if any(key in item['url'] for key in keywords):
                return item
            else
                raise DropItem("Missing specified keywords.")
        else
            return item

相关问题 更多 >