scrapy爬虫(三)item及pipline

  1. 在item中定义需要存储的字段,然后导入到爬虫文件中,将相应字段数据添加到item中,直接yield出去就能传递给pipline
    scrapy爬虫(三)item及pipline_第1张图片
  2. 如果要让pipline能接收到需要在settings中开启ITEM_PIPELINES
    在这里插入图片描述
    这里以默认的pipline为例(可以自定义pipline,定义好后按上图的方式添加,用不上的要注释掉,后面的数字表示优先级,越小越先执行),可以看到piplines文件中的LagouspiderPipeline已经接收到了item
    scrapy爬虫(三)item及pipline_第2张图片
  3. 通过pipline将数据存储到json文件中
    由于前面文章只是爬取一条数据,拉钩的限频机制没有被触发,当爬取数据较多时就会触发该反爬机制,应对措施是在settings中开启限速DOWNLOAD_DELAY = 10,表示每十秒下载一次,添加USER_AGENT,COOKIES_ENABLED = False;
    scrapy爬虫(三)item及pipline_第3张图片
    这次修改爬虫代码为爬取首页的所有详情页面url并解析,yield出去到pipline中
    scrapy爬虫(三)item及pipline_第4张图片
    在我们自定义的pipline中使用到的是JsonLinesItemExporter,该类的好处是可以将每一个item数据作为一行,不用自己再去处理换行才做等,该pipline中的方法名都是固定名称不能改scrapy爬虫(三)item及pipline_第5张图片

你可能感兴趣的:(Python)