我是新来的Scrapy和很新的蟒蛇也。我有一只蜘蛛在同一个全身多处yield
。
yield {
'url' : response.url,
'html' : response.css('body').extract(),
'title': response.css('title::text').extract_first(),
}
每个yield
是不同解析方法里面,但我只想编写一次yield
和重用。
我第一次尝试的方法需要响应作为参数并返回yield
。然后我打电话从剖析方法的方法,但Scrapy声称,我无法回报yield
。
您可以定义代码,例如方法:
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)
看起来你想是这样的
item = {
'url' : response.url,
'html' : response.css('body').extract(),
'title': response.css('title::text').extract_first(),
}
yield item
yield item
yield item