python - pyspider怎樣傳遞信息給下一個(gè)函數(shù),但是不通過(guò)url
問(wèn)題描述
有的時(shí)候向通過(guò)pyspider直接傳遞信息給下一個(gè)函數(shù),但是沒(méi)有cral一個(gè)新的url的需求。
比如說(shuō),一個(gè)列表頁(yè)面某部分信息需要傳遞給下一個(gè)函數(shù),但是不想通過(guò)列表的url傳遞。
想過(guò)用send_message的方法來(lái)做,還有就是用self.crawl的response.save來(lái)做(url隨便寫(xiě)一個(gè)比較好爬的網(wǎng)站)但是這兩個(gè)方法都不是特別好。
請(qǐng)問(wèn)有什么好的方法嗎。
問(wèn)題解答
回答1:下一個(gè)函數(shù)已經(jīng)執(zhí)行結(jié)束了,它已經(jīng)不存在了,你怎么傳遞傳遞信息給一個(gè)不存在的東西?
回答2:無(wú)非跳轉(zhuǎn)callback, 已出來(lái)的數(shù)據(jù)yield, 不過(guò)你還是測(cè)試一下.
def detail(self, response): next_urls = [i.attr.href for i in response.doc(’#fetch urls’)] for url in next_urls:self.crawl(url, callback=self.list_page) for i in items = [# some result]yield i
