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