我正在與Scrapy苦苦掙扎,我不明白在回調之間傳遞項目是如何工作的。也許有人可以幫助我。scrapy:理解項目和請求之間如何工作回調
def parse_page1(self, response):
item = MyItem()
item['main_url'] = response.url
request = scrapy.Request("http://www.example.com/some_page.html",
callback=self.parse_page2)
request.meta['item'] = item
return request
def parse_page2(self, response):
item = response.meta['item']
item['other_url'] = response.url
return item
我想了解一步的行動那裏流動,步:
[parse_page1]
item = MyItem()
< - 對象項目被創建item['main_url'] = response.url
< - 我們正在分配value to main_url object itemrequest = scrapy.Request("http://www.example.com/some_page.html", callback=self.parse_page2)
< - 我們正在請求一個新頁面並啓動parse_page2來取消它。
[parse_page2]
item = response.meta['item']
< - 我不理解這裏。我們正在創建一個新的對象項目,或者這是在[parse_page1]中創建的對象項目?什麼response.meta ['item']的意思是?我們通過在3請求唯一信息,如鏈接和回調,我們沒有增加,我們可以指的是任何額外的參數...item['other_url'] = response.url
< - 我們要分配值other_url對象項目return item
<的 - 我們正在返回項對象作爲請求request.meta['item'] = item
<結果 - 我們分配對象項來請求?但是請求完成後,回調已經在6中返回項了?return request
< - 我們正在收到請求的結果,所以從6項開始,對嗎?
[parse_page1]
我經歷了所有的文檔就有關scrapy和請求/響應/元,但我還是不明白髮生了什麼事在這裏點4和7
請檢查:http://stackoverflow.com/questions/20663162/scrapy-passing-item-between-methods – eLRuLL