Python 如何在spider上重用产量

Python 如何在spider上重用产量,python,scrapy,web-crawler,yield,Python,Scrapy,Web Crawler,Yield,我对Scrapy很陌生,对python也很陌生。 我有多个yield,在一个spider中具有相同的主体 yield { 'url' : response.url, 'html' : response.css('body').extract(), 'title': response.css('title::text').extract_first(), } 每个yield都有不同的解析方法,但我只想编写yield一次并重用它 我首先尝试了一个方法,该方法将respon

我对Scrapy很陌生,对python也很陌生。 我有多个
yield
,在一个spider中具有相同的主体

yield {
    'url'  : response.url,
    'html' : response.css('body').extract(),
    'title': response.css('title::text').extract_first(),
}
每个
yield
都有不同的解析方法,但我只想编写
yield
一次并重用它

我首先尝试了一个方法,该方法将response作为参数并返回
yield

然后我从parse方法调用了该方法,但是Scrapy声称我不能返回
yield

看起来您想要这样的东西

item = {
            'url'  : response.url,
            'html' : response.css('body').extract(),
            'title': response.css('title::text').extract_first(),
        }

yield item
yield item
yield item

您可以为该代码定义一个方法,例如:

def parse_item(self, response): 
    yield {
        'url'  : response.url,
        'html' : response.css('body').extract(),
        'title': response.css('title::text').extract_first(),
    }
并从另一个方法调用它,使用
yield from
。例如:

def another_method(self, response)
    # ...
    yield from self.parse_item(response)

我个人不明白你的问题是什么。。。但也许您需要查阅一些关于收益率及其作用的教程