美文网首页虫虫
Scrapy爬虫框架之Request和Response(请求和响

Scrapy爬虫框架之Request和Response(请求和响

作者: 朝南而行_ | 来源:发表于2019-02-20 15:04 被阅读4次

    请求和响应

    Scrapy的Request和Response对象用于爬取网站。

    流程图

    Request源码

    Request源码

    Request对象:

    Request 对象表示一个HTTP请求,它通常是在爬虫生成,并由下载执行,从而生成Response 有请求才有响应

    Request 对象在我们写爬虫,爬取一页的数据需要重新发送一个请求的时候调用。这个类需要传递一些参数,其中比较常用的参数有:

    1. url (string) 这个request对象发送请求的url。

    2. callback(callback) 在下载器下载完相应的数据后执行的回调函数。

    3. method (string) 请求的方法。默认为GET方法,常用还有 POST ,注意是大写

    4. headers(dict) 请求头,对于一些固定的设置,放在 settings.py 中指定就可以了。对于那些非固定的,可以在发送请求的时候指定。

    5. body(str或unicode) 请求体。如果unicode传递了a,那么它被编码为 str使用传递的编码(默认为utf-8)。如果 body没有给出,则存储一个空字符串。不管这个参数的类型,存储的最终值将是一个str(不会是unicode或None)。

    6. cookie(dict或list) 请求cookie。这些可以以两种形式发送。

    7. meta(dict) 比较常用。用于在不同的请求之间传递数据用的。

    8. encoding 编码。默认的为utf-8,使用默认的就可以了。

    9. priority(int) 此请求的优先级(默认为0)。调度器使用优先级来定义用于处理请求的顺序。具有较高优先级值的请求将较早执行。允许负值以指示相对低优先级。

    10. dont_filter(boolean) 表示不由调度器过滤。在执行多次重复的请求的时候用得比较多, 默认为False。

    11. errback(callback) 在发生错误的时候执行的函数。

    Response对象:

    Response 对象一般是由Scrapy给你自动构建的。因此开发者不需要关心如何创建Response对象,而是如何使用他。Response 对象有很多属性,可以用来提取数据的。主要有以下属性:

    1. meta 从其他请求传过来的meta 属性,可以用来保持多个清求之向的数据连接。

    2. encoding 返回当前字符串编码和解码的格式。

    3. text 将返回来的数据为 unicode 字符串返回。

    4. body 将返回来的数据作为 bytes 字符串返回。

    5. xpath xapth迭代器。

    6. css css迭代器。

    发送POST靖求:

    有吋候问想要在请求数据的吋候发送POST请求,那么这吋候需要使用Request的子类FormRequest 来实现。如果想要在爬虫一开始的时候就发送POST请求,那么需要在爬虫类中重写 start. requests(self) 方法,并且不再调用 start_urls里的 url

    更多Python实战源码请关注 朝南而行 公众号

    朝南而行

    上一篇:Scrapy-redis分布式组件之redis数据库
    下一篇:Scrapy爬虫框架之下载器中间件(可设置随机请求头和随机代理IP)

    相关文章

      网友评论

        本文标题:Scrapy爬虫框架之Request和Response(请求和响

        本文链接:https://www.haomeiwen.com/subject/ttgyrqtx.html