首頁  >  問答  >  主體

python - pyspider怎麼傳遞訊息給下一個函數,但是不透過url

有的時候向透過pyspider直接傳遞訊息給下一個函數,但是沒有cral一個新的url的需求。

比如說,一個列表頁面某部分資訊需要傳遞給下一個函數,但是不想透過列表的url傳遞。

想過用send_message的方法來做,還有就是用self.crawl的response.save來做(url隨便寫一個比較好爬的網站)
但是這兩個方法都不是特別好。

請問有什麼好的方法嗎。

淡淡烟草味淡淡烟草味2687 天前530

全部回覆(2)我來回復

  • ringa_lee

    ringa_lee2017-05-18 11:02:39

    下一個函數已經執行結束了,它已經不存在了,你怎麼傳遞傳遞訊息給一個不存在的東西?

    回覆
    0
  • 曾经蜡笔没有小新

    曾经蜡笔没有小新2017-05-18 11:02:39

    無非跳轉callback, 已出來的資料yield, 不過你還是測試一下.

    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
    

    回覆
    0
  • 取消回覆