scrapy中的Request和Response对象
前言:
如果框架中的组件比做成是人的各个器官的话,那个Request和Response就是血液,Item就是代谢产物
Request对象:
是用来描述一个HTTP请求,其构造参数有
- url
- 请求的URL
- callback
- 回调函数
- method
- 默认是GET
- headers
- 字典类型
- body
- cookies
- 字典类型
- meta
- Request中的元数据字典,dict类型,用来给框架中的其它组件来进行传递消息,比如说中间件Iten、Pipeline。其它组件可以使用request对象的meta属性来进行访问该元数据字典中的参数
- encoding
- priority
- 请求的优先级默认是0,优先级高的就会优先进行下载
- dont_filter
- 默认是False, 对同一个url地址多次提交下载任务请求,后面请求会被去重过滤器直接过滤掉(避免重复下载资源)。如果将该参数为True,可以让请求避免被过滤。强制进行下载。
- errback
- 当请求出现异常的时候或者HTTP错误的时候的回调函数
这里面虽然有很多参数,但是除了url意外其它的都是可选参数,是带有默认值的。在构造Request对象的时候,通常我们只需要传递一个url参数和callback参数,其它的都是可以直接使用默认值就可以了
Response对象:
是用来描述一个HTTP相应的,Response只是一个基类,根据相应的内容的不同有TextResponse、HTmlResponse、XmlResponse
当一个页面完成下载的时候,下载器根据HTTP响应头部中的Content-Type信息创建某个Response的子类的对象。我们通常爬取的网页中的内容就是HTML文件,所有创建的也就是HtmlResponse,其中HtmlResponse和XmlResponse是TextResponse的子类。实际上,这三个子类只有细微的差别
HtmlResponse对象的属性以及方法:
- url
- HTTP响应的url地址,str类型
- status
- HTTP响应的状态码,int类型
- headers
- HTTP响应的头部,字典类型,可以通过get或者getlist方法对其进行访问
- body
- text
- 文本形式的HTTP响应,str类型,是由response.body使用response.encoding解码得到的
- encoding
- request
- 产生该HTTP响应的Request对象
- meta
- response.request.meta,在构造Request对象的时候,可以将要传递给回调函数的参数通过meta参数来进行传递;回调函数处理响应的时候,可以通过response.meta来进行取值
- selector
- 用于Response提取信息
- xpath
- css
- urljoin
- 用于构造绝对URL,当传入的URL参数是一个相对地址的时候,根据response.url计算出相应的绝对URL
- url
scrapy中的Request和Response对象的更多相关文章
- SpringMvc4中获取request、response对象的方法
springMVC4中获取request和response对象有以下两种简单易用的方法: 1.在control层获取 在control层中获取HttpServletRequest和HttpServle ...
- springMVC中获取request和response对象的几种方式(RequestContextHolder)
springMVC中获取request和response对象的几种方式 1.最简单方式:参数 2.加入监听器,然后在代码里面获取 原文链接:https://blog.csdn.net/weixin_4 ...
- 【转】Django中的request与response对象
关于request与response 前面几个 Sections 介绍了关于 Django 请求(Request)处理的流程分析,我们也了解到,Django 是围绕着 Request 与 Respon ...
- JSP 中的 Request 和 Response 对象
客户端的请求信息被封装在request对象中,通过它才能了解到客户的需求,然后做出响应.它是HttpServletRequest类的实例:response对象包含了响应客户请求的有关信息,但在JSP中 ...
- 在springMVC的controller中获取request,response对象的一个方法
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttr ...
- java中获取request与response对象的方法
Java 获取Request,Response对象方法 第一种.参数 @RequestMapping("/test") @ResponseBody public void sa ...
- Scrapy中的Request和Response
Request Request 部分源码: # 部分代码 class Request(object_ref): def __init__(self, url, callback=None, metho ...
- Django中的Request和Response
接触Django这么久了,从来没有好好学习关于Django中的Request和Response对象.借着文件上传下载的相关工作,现在总结一下也不错. 当一个页面请求过来,Django会自动创建一个Re ...
- 在SpringMVC中操作Session、Request、Response对象
示例 @Service public class UserServiceImpl implements UserService { @Autowired private UserMapper user ...
随机推荐
- 伪造ip头
x-forwarded-for: 127.0.0.1x-remote-IP: 127.0.0.1x-remote-ip: 127.0.0.1x-client-ip: 127.0.0.1x-client ...
- 一个小村庄的烦恼(netty-nio)
背景:一座大山有个小村庄,住着几百户人家,隔着大山那边几十里山路,有个小集市,家家户户经常翻山越岭买日用品,苦不堪言(同步阻塞,单线程,每户人家一个线程,去赶集了,今天也干不了别的活). 后来村长看着 ...
- Apache服务器性能如何优化
配置网站,要充分的把系统资源利用出去,榨干系统的一切潜能,让网站速度发挥到极致.Apache,是用户浏览和网站数据的一个中间桥梁.但是在这里,我们虽然做得并不是很多,但是如果心细打理,有些设置也会起到 ...
- jquery.artDialog.source.js学习
1 关键的对象关系art = jQuery = $function artDialog() {...}artDialog.fn = artDialog.prototype = artDialog.fn ...
- java中的Math类
一般地,当需要使用数字的时候,我们通常使用内置数据类型,如:byte.int.long.double 等 在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情形.为了解决这个问题,Ja ...
- Leetcode166. Fraction to Recurring Decimal分数到小数
给定两个整数,分别表示分数的分子 numerator 和分母 denominator,以字符串形式返回小数. 如果小数部分为循环小数,则将循环的部分括在括号内. 示例 1: 输入: numerator ...
- LoadRunner穿过防火墙运行Vuser和进行监控
LoadRunner穿过防火墙运行Vuser和进行监控 LoadRunner穿过防火墙进行测试,总结下来是2个方法:1. 在controller和Vuser的LAN中的防火墙都打开54345端口即 ...
- DuiLib学习笔记1.编译运行demo
c++中皮肤问题比较麻烦,MFC自带的太难用.DirectUI界面库就比较强大了,之前像skin++之类的基于DirectUI收费昂贵.DuiLib是基于DirectUI的界面库,可以将用户界面和处理 ...
- python的meshgrid用法和3D库 mpl_toolkits.mplot3d 与PolynomialFeatures多项式库学习
meshgrid import numpy as np from matplotlib import pyplot as plt from mpl_toolkits.mplot3d import Ax ...
- java软引用、弱引用(转摘)
本文转自网络,源地址:https://www.jianshu.com/p/b56731447179 一.引用对象类型定义 首先,引用对象在Java定义中有三种类型,从弱到强依次为:软引用.弱引用与虚引 ...