これは私のコードです
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"
nullとして来ています
return request
代わりに使用する場合 yield item
次に、エラーが発生しますcannot use return with generator
この行を削除すると
yield Request(urljoin(response.url, nextlink), callback=self.parse)
その後、私のコードは正常に動作し、取得できますimage_urls
が、リンクをたどることはできません
item_urls を取得するために使用できる方法はありますreturn request
かyield together