如果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)