• scrapy爬虫 函数间传值简易教程


    2017-03-27

    有的时候我们爬取数据的时候需要在多个页面之间跳转,爬取完所有页面的数据的时候才能把所有数据一起存到数据库,这个时候我们就需要把某个函数内爬取的数据传到下一个函数当中。
    有人可能会说,为什么不用全局变量呢?这是因为scrapy自带多线程机制,好几个线程同时跑,用全局变量很不明智,除非顺序逻辑非常清楚的程序。
    这个时候我们就要用到scrapy中Request方法的meta参数

     

    def first(self, response)

      code = response.xpath('*****').extract()[0]

      yield FormRequest(url=url,meta={'code':code},formdata={},callback=self.next)

    #meta和formdata属性一样,是一个字典,这里面我们把从网页中爬取到的code值放在meta中传入下一个函数

     

    def next(self, response)

      code = response.meta["code"]

    #在下一个函数当中我们就可以从response对象当中取得meta中的code值,这里就可以确保两个函数中code的值是完全一致的。

  • 相关阅读:
    Mysql高手系列
    Mysql高手系列
    Mysql高手系列
    Mysql高手系列
    Mysql高手系列
    Mysql高手系列
    Mysql高手系列
    Mysql高手系列
    Mysql高手系列
    Mysql高手系列
  • 原文地址:https://www.cnblogs.com/zhangtianyuan/p/6829627.html
Copyright © 2020-2023  润新知