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

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_34363070/article/details/84504228

请求和响应

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。这些可以以两种形式发送。

    扫描二维码关注公众号,回复: 4402654 查看本文章
  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)

猜你喜欢

转载自blog.csdn.net/qq_34363070/article/details/84504228
今日推荐