这是我的代码
def parse(self, response):
soup = BeautifulSoup(response.body)
hxs = HtmlXPathSelector(response)
sites = hxs.select('//div[@class="row"]')
items = []
for site in sites[:5]:
item = TestItem()
item['username'] = "test5"
request = Request("http://www.example.org/profile.php", callback = self.parseUserProfile)
request.meta['item'] = item
**yield item**
mylinks= soup.find_all("a", text="Next")
if mylinks:
nextlink = mylinks[0].get('href')
yield Request(urljoin(response.url, nextlink), callback=self.parse)
def parseUserProfile(self, response):
item = response.meta['item']
item['image_urls'] = "test3"
return item
现在我的上述工作,但我没有得到价值item['image_urls'] = "test3"
它是空的
现在如果使用 return request
而不是yield item
然后得到错误cannot use return with generator
如果我删除这条线
yield Request(urljoin(response.url, nextlink), callback=self.parse)
然后我的代码工作正常,我可以得到image_urls
,但我无法点击链接
那么有什么方法可以让我使用return request
并yield together
获得 item_urls