Это должно решить вашу проблему:
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
.
В любом случае, я бы порекомендовал вам реализовать этот конвейер так:
from scrapy.exceptions import DropItem
class GumtreeCouchesPipeline(object):
keywords = ['leather', 'couches']
def process_item(self, item, spider):
if not any(key in item['url'] for key in self.keywords):
raise DropItem('missing keyword in URL')
return item
Таким образом, вы получитеинформация о пропущенных предметах в статистике заданий после ее завершения.