擅长:python、mysql、java
<p>来自谷歌集团的史蒂文·阿尔梅罗斯:</p>
<p>你说得对,你可以提出请求并返回一个项目列表,但这不是你想要的。您试图生成一个项目列表,而不是返回它们。而且由于已经将parse()用作生成函数,因此不能同时使用yield和return。但你可以有很多收益。</p>
<p>试试这个:</p>
<pre><code>def parse(self, response):
hxs = HtmlXPathSelector(response)
base_url = response.url
links = hxs.select(self.toc_xpath)
for index, link in enumerate(links):
href, text = link.select('@href').extract(), link.select('text()').extract()
yield Request(urljoin(base_url, href[0]), callback=self.parse2)
for item in self.parse2(response):
yield item
</code></pre>