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 ...
随机推荐
- CSS display overflow 属性 cursor光标类型
display属性 功能:规则网页元素如何显示的问题. 取值:none(隐藏).block(以块元素显示).inline(以行内元素显示) block:可以实现将行内元素转成块元素. ...
- dashboard服务
1.上传镜像,并导入,打标签 2.创建dashboard的deployment和service apiVersion: extensions/v1beta1 kind: Deployment meta ...
- 使用Navicat连接管理远程linux服务器上的mysql数据库
第一步:选择连接,选择mysql 第二步:填写下面弹出框的信息:连接名随便写,主机名或IP地址:写上服务器的ip. 端口不变 用户名不变. 密码:输入服务器数据库的密码12345678. 接着测 ...
- multiprocessing多进程(31-04)创建进程的两种方式
一个进程可以寄生多个线程. CPU核数与进程个数是统一的, 若进程多于核数,那么只有等待上一进程执行完才能被执行. ------------------第一种进程创建方式--------------- ...
- Tomcat的优化技巧
(1)参数 minProcessors:最小空闲连接线程数,用于提高系统处理性能,默认值为10. maxProcessors:最大连接线程数,即:并发处理的最大请求数,默认值为75. acceptCo ...
- 1、docker centos 安装
Docker for CentOS: 第一步:使用官方yum仓库 [root@linux-node1 ~]# yum install -y yum-utils [root@linux-node1 ~] ...
- 【BZOJ4916】神犇与蒟蒻
题面 Description 很久很久以前,有一只神犇叫yzy; 很久很久之后,有一只蒟蒻叫lty; Input 请你读入一个整数N;\(1<=N<=10^9\),A.B模\(10^9+7 ...
- 关于Slice的一些补充说明
s[m:n:l] 规则总结如下. (1) 范围 [m,n),从m开始轮询:超出范围后选边界值. l>0 l<0 关于边界值 (2) 把字符串完全反序,用 s[::-1]. 有些文档上说 s ...
- 2-sat——暴力染色输出方案hdu1814
因为要求输出字典序最小的解,所以用暴力染色 具体有点像二分图染色 遍历0-2*n-1个点,尝试将每个点染成1,该点所能到达的所有点都要染成1 如果不行,则把上该点的影响消除,再把对立点染成1,如果还不 ...
- springboot与安全
概念: 安全 Spring Security是针对Spring项目的安全框架,也是Spring Boot底层安全模块默认的技术选型.他可以实现强大的web安全控制.对于安全控制,我们仅需引入sprin ...