zoukankan      html  css  js  c++  java
  • Scrapy框架中的Spider.Resquest 和 Response.follow 的区别

    最近学习scrapy框架,感受到了scrapy的强大,可能自己还没有学透,感觉有时候数据保存没有那么方便,等技术成熟也许会使用更加灵活,废话不多说,进入今天的主题。

    首先,为什么要使用Resquest和Response.follow
    按照我的理解,使用scrapy框架和之前脚本爬虫最大的区别是,scrapy框架中你只需要写出爬虫的几个部分任务,整体的爬虫引擎已经实现,并且scrapy实现的异步爬虫,速度极快,而自己写脚本爬虫则需要写出全部过程。
    更形象一点说,scrapy就像是一个专业的爬虫管家,你把你需要做的任务交给他,他会即快又好的完成。
    我相信了解过的人都知道Spider.Resquest的作用,Response.follow也有同样的功能,不过多了一些小区别。

    一、Response.follow可以使用相对地址
    这是第一点不同,Resquest需要你提供完整的url才可以进行请求。

    二、Response.follow可以使用选择器

    for href in response.css('li.next a::attr(href)'):
        yield response.follow(href, callback=self.parse)

    如果你不想使用url,可以使用css选择器,不过必须要使用其中包含url参数的选择器

    三、Response.follow可以使用标签

    for a in response.css('li.next a'):
        yield response.follow(a, callback=self.parse)

    如果你连带url参数选择器都不想使用,可以直接使用带url的标签传递,response.follow会自动使用其中的url

    经过上面的讲解,你是不是已经对两者的区别有一定了解,在合适的时候选择合适的方法,可以事半功倍!!

  • 相关阅读:
    十大Intellij IDEA快捷键
    多媒体播放API 生命周期束&简介
    Bitmap
    Activity
    Android中的Handler总结
    Bitmap2
    smartimageview和多线程
    Service
    微软面试题 博弈论 经典案例 (参考答案)
    ANR和消息机制
  • 原文地址:https://www.cnblogs.com/GF66/p/9785475.html
Copyright © 2011-2022 走看看