in scrapy: understanding how do items and requests work between callbacks ,eLRuLL的回答非常好。
我想添加項目變換的一部分。首先,我們將明確回調函數只有在該請求的響應被重載之前才起作用。
在scrapy.doc給出的代碼中,它不聲明page1和url的url和請求。讓我們將page1的url設置爲「http://www.example.com.html」。
[parse_page1]是
scrapy.Request("http://www.example.com.html",callback=parse_page1)`
[parse_page2]回調的
scrapy.Request("http://www.example.com/some_page.html",callback=parse_page2)
當第1頁的響應被下載回調,parse_page1被調用來生成第2頁的請求:
item['main_url'] = response.url # send "http://www.example.com.html" to item
request = scrapy.Request("http://www.example.com/some_page.html",
callback=self.parse_page2)
request.meta['item'] = item # store item in request.meta
在下載page2的響應後,調用parse_page2給retru一個項目:
item = response.meta['item']
#response.meta is equal to request.meta,so here item['main_url']
#="http://www.example.com.html".
item['other_url'] = response.url # response.url ="http://www.example.com/some_page.html"
return item #finally,we get the item recording urls of page1 and page2.
item = response.meta['item']
#response.meta is equal to request.meta,so here item['main_url']
#="http://www.example.com.html".
item['other_url'] = response.url # response.url ="http://www.example.com/some_page.html"
return item #finally,we get the item recording urls of page1 and page2.
我已經閱讀過這個部分了......但是我很困惑,我已經提到過代碼如何流動。 – Parag
查看我的更新。基本上與其他詞語相同的東西。 – warvariuc
感謝您的解釋...現在它是有道理的時候,我再次讀完整的東西 – Parag