需要解決的問題:scrapy框架yield和return


如果class下面發送請求時用的是return(return [scrapy.Request(url=url,headers=self.header,body=json.dumps(payload),method="POST",callback=self.parse)]),那么這個方法就不能調用類屬性(self.  );如果發送請求是yield,那么就能用類屬性(self.  )

報錯信息是:AttributeError: 'Spider' object has no attribute 'mcht_id',

代碼是

    def start_requests(self):
        print(self.mcht_id)
        """第一次請求一下登錄頁面,設置開啟cookie使其得到cookie,設置回調函數"""
        return [Request('http://www.jingpiwang.com', meta={'cookiejar': 1}, callback=self.next1)]

  如果這里改成這樣就行了:

    def start_requests(self):
        print(self.mcht_id)
        """第一次請求一下登錄頁面,設置開啟cookie使其得到cookie,設置回調函數"""
        yield Request('http://www.jingpiwang.com', meta={'cookiejar': 1}, callback=self.next1)

  


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM