我使用Scrapy来获取数据this site。我需要从parse
调用getlink
。当使用yield
时,正常调用无法正常工作,我得到以下错误:
2015-11-16 10:12:34 [scrapy] ERROR: Spider must return Request, BaseItem, dict or None, got 'generator' in <GET https://www.coldwellbankerhomes.com/fl/miami-dad
e县/kvc-17 U 1、17_3、17_2、17_8/incl-22/>
从parse
返回getlink
函数可以工作,但即使在返回之后我也需要执行一些代码。我很困惑,任何帮助都是值得的。在
getlink()
是一个生成器。您正试图从parse()
生成器将其yield
。在相反,您可以/应该迭代
getlink()
调用的结果:另外,我注意到你有}。后者不起作用,因为webdriver实例上没有} ,例如:
^{pr2}$self.getlink(response)
和{xpath()
方法-您可能是想从您的webdriver控制的浏览器加载的页面源中make a Scrapy ^{您还应该注意Explicit Waits with Expected Conditions,而不是通过
time.sleep()
使用不可靠且缓慢的人工延迟。在另外,我不确定您手动写入CSV而不是使用内置的Scrapy Items和Item Exporters的原因。而且,您没有正确关闭文件,也没有使用
with()
上下文管理器。在另外,尝试捕获更具体的异常和avoid having a bare try/expect block。在
相关问题 更多 >
编程相关推荐