zoukankan      html  css  js  c++  java
  • 需要解决的问题: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)
    

      

  • 相关阅读:
    汉诺塔
    协变和逆变随笔
    NetCore开发第一步 Log4Net日志引入
    插入排序算法
    选择排序算法
    冒泡排序算法
    排序算法
    线性链表
    SAN
    SAM -- Chap 8 提升方法 自我梳理
  • 原文地址:https://www.cnblogs.com/qiaoer1993/p/10808358.html
Copyright © 2011-2022 走看看