我有一个scraper,我想在调用http请求和解析之前检查url。url可能是None
,因为它是调用的一个输入参数:
def start_requests(self):
# url as input to system
if url:
yield scrapy.Request(url, callback=self.parse)
在文档中,start_request
函数必须返回一个Requests的可迭代对象。如果url
是None
,上面的代码可以工作,但不返回任何项。这对scrapy来说是个坏习惯吗?
1条答案
按热度按时间nr7wwzry1#
斯凯里用它做的是
它的工作原理是
yield
关键字。这将返回类型更改为生成器,所以即使url
为None,也会返回空生成器,这就是它工作的原因(而且非常好)。但是要小心,如果你决定使用list:它会碎的。