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

  

相关文章:

  • 2021-09-21
  • 2022-12-23
  • 2022-12-23
  • 2021-09-06
  • 2021-10-24
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-12-04
  • 2022-12-23
  • 2021-07-22
  • 2021-10-12
  • 2022-12-23
  • 2021-12-21
  • 2021-09-21
相关资源
相似解决方案