• 需要解决的问题: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)
    

      

  • 相关阅读:
    php函数
    php循环语句(二)
    php循环语句(一)
    php魔术常量
    php超级全局变量
    php数组函数
    php数组
    php条件语句(二)
    php条件语句(一)
    shell 中的判断
  • 原文地址:https://www.cnblogs.com/qiaoer1993/p/10808358.html
Copyright © 2020-2023  润新知