如何重用蜘蛛产量

问题描述 投票:1回答:2

我是新来的Scrapy和很新的蟒蛇也。我有一只蜘蛛在同一个全身多处yield

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

每个yield是不同解析方法里面,但我只想编写一次yield和重用。

我第一次尝试的方法需要响应作为参数并返回yield。然后我打电话从剖析方法的方法,但Scrapy声称,我无法回报yield

python scrapy web-crawler yield
2个回答
2
投票

您可以定义代码,例如方法:

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)

0
投票

看起来你想是这样的

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

yield item
yield item
yield item
© www.soinside.com 2019 - 2024. All rights reserved.