W3Cschool
恭喜您成為首批注冊用戶
獲得88經驗值獎勵
請求的回調是一個函數,在下載請求的響應時將調用該函數。將使用下載的 ?Response
? 對象作為其第一個參數。
例子::
def parse_page1(self, response):
return scrapy.Request("http://www.example.com/some_page.html",
callback=self.parse_page2)
def parse_page2(self, response):
# this would log http://www.example.com/some_page.html
self.logger.info("Visited %s", response.url)
在某些情況下,您可能對向這些回調函數傳遞參數感興趣,以便稍后在第二個回調中接收這些參數。下面的示例演示如何通過使用 ?Request.cb_kwargs
? 屬性:
def parse(self, response):
request = scrapy.Request('http://www.example.com/index.html',
callback=self.parse_page2,
cb_kwargs=dict(main_url=response.url))
request.cb_kwargs['foo'] = 'bar' # add more arguments for the callback
yield request
def parse_page2(self, response, main_url, foo):
yield dict(
main_url=main_url,
other_url=response.url,
foo=foo,
)
警告
?Request.cb_kwargs
? 在版本中引入 ?1.7
? . 在此之前,使用 ?Request.meta
? 建議在回調時傳遞信息。后 ?1.7
? , ?Request.cb_kwargs
? 成為處理用戶信息的首選方式,離開 ?Request.meta
? 用于與中間件和擴展等組件通信。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯系方式:
更多建議: