Scrapy中response介绍、属性以及内容提取

 

解析response

parse()方法的参数 response 是start_urls里面的链接爬取后的结果。所以在parse()方法中,我们可以直接对response对象包含的内容进行解析,比如浏览请求结果的网页源代码,或者进一步分析源代码内容,或者找出结果中的链接而得到下一个请求

一.response属性

url :HTTP响应的url地址,str类型

status:HTTP响应的状态码, int类型

headers :HTTP响应的头部, 类字典类型, 可以调用get或者getlist方法对其进行访问

body:HTTP响应正文, bytes类型

text:文本形式的HTTP响应正文, str类型

response.text = response.body.decode(response.encoding)

encoding:HTTP响应正文的编码

reqeust:产生该HTTP响应的Reqeust对象

meta:即response.request.meta, 在构造Request对象时, 可将要传递给响应处理函数的信息通过meta参数传入, 响应处理函数处理响应时, 通过response.meta将信息提取出来

selector:Selector对象用于在Response中提取数据使用下面详细将,主要是 xpath,css取值之后的处理

xpath(query):下面详细讲解

css(query) :下面详细讲解

urljoin(url) :用于构造绝对url, 当传入的url参数是一个相对地址时, 根据response.url计算出相应的绝对url.

二.Selector对象

  • Selector 对象和SelectorList对象都有以下几种方法。

  • extract() 返回选中内容的Unicode字符串

  • extract_first()(SelectorList独有)

    返回列表中的第一个元素内容

  • re("正则表达式") 正则提取

  • re_first()(SelectorList独有)

    返回列表中的第一个元素内容

三.CSS

response.css('css选择器')   返回值是Selector对象

response.css('css选择器').extract_first()   #获取一个

response.css('css选择器').extract()  # 获取全部

response.css('css选择器::attr(属性名)').extract()  # 获取其中某个属性

(response.css('css选择器::text').extract()  #获取标签里的文本

四.xpath

response.xpath('xpath选择器')   返回值是Selector对象

response.xpath('xpath选择器').extract_first()   #获取一个

response.xpath('xpath选择器').extract()  # 获取全部

.//a[contains(@class,"link-title")/text()]  # 获取文本

.//a[contains(@class,"link-title")/@href] #获取属性

 

scrapy 的response 的相关属性的更多相关文章

  1. Scrapy框架-爬虫程序相关属性和方法汇总

    一.爬虫项目类相关属性 name:爬虫任务的名称 allowed_domains:允许访问的网站 start_urls: 如果没有指定url,就从该列表中读取url来生成第一个请求 custom_se ...

  2. ASP.NET Core中如果Response.HasStarted已经为true,就不能更改Response.Cookies和Response.Headers等属性的值了

    最近我在ASP.NET Core中做了一个中间件CustomizedMiddleware,要说该中间件的功能也很简单,其实就是往HttpResponse中添加一个Cookie而已,但是我将添加Cook ...

  3. 随手记一次用C#正则表达式获取下拉菜单html标签<select>以及相关属性值

    随手记一次用C#正则表达式获取下拉菜单html标签<select>以及相关属性值 1:有如下html: .................. <select id="aaa ...

  4. css中的大小、定位、轮廓相关属性

    css中的大小.定位.轮廓相关属性 1.通过height.width属性控制组件大小 height:高度,可以设置任何有效的距离值: width:宽度,可以设置任何有效的属性值: max-height ...

  5. css中的背景、边框、补丁相关属性

    css中的背景.边框.补丁相关属性 关于背景涉及到背景颜色与背景图片 背景颜色background-color即可设定: 背景图片background-image即可设定: 但是背景图片还涉及到其他的 ...

  6. Activity Intent Flags及Task相关属性

    转自http://www.cnblogs.com/lwbqqyumidi/p/3775479.html 今天我们来讲一下Activity的task相关内容. 上次我们讲到Activity的四种启动模式 ...

  7. AndroidManifest.xml中<activity></activity>相关属性说明

    虽说,从事android开发有一定时间了,对于Activity大家也都不陌生,但是具体的对于Activity中相关属性的含义有必要做一个系统的总结: intent-filteraction: 来指定响 ...

  8. css中的字体及文本相关属性

    css中的字体及文本相关属性 1.字体相关属性 字体主要可以设置color.font-family.font-size.font-size-adjust.font-stretch.font-style ...

  9. Android总结篇系列:Activity Intent Flags及Task相关属性

    同上文一样,本文主要引用自网上现有博文,并加上一些自己的理解,在此感谢原作者. 原文地址: http://blog.csdn.net/liuhe688/article/details/6761337 ...

随机推荐

  1. php处理url的rawurlencode:可处理空格加号

    (PHP 4, PHP 5, PHP 7) rawurlencode - 按照 RFC 3986 对 URL 进行编码 返回字符串,此字符串中除了 -_. 之外的所有非字母数字字符都将被替换成百分号( ...

  2. npm WARN ajv-keywords@2.1.1 requires a peer of ajv@^5.0.0 but none is installed. You must install peer dependencies yourself.

    解决: npm install -g npm-install-peers npm install -g npm npm i ajv 但是好像没啥用

  3. webpack4 使用babel处理ES6语法的一些简单配置

    一,安装包 npm install --save-dev babel-loader @babel/corenpm install @babel/preset-env --save-devnpm ins ...

  4. YbtOJ#832-鸽子饲养【凸包,Floyd】

    正题 题目链接:https://www.ybtoj.com.cn/contest/116/problem/3 题目大意 给出两个大小分别为\(n,m\)的点集\(A,B\). 求出\(B\)的一个最小 ...

  5. pycharm中安装扩展包

    在使用Pycharm编写代码时,如果遇到了所需要的扩展包没有的情况时,可以使用以下方法来添加自己需要的扩展包. 1.点击File->settings 2.选择Project Interprete ...

  6. WPF进阶技巧和实战08-依赖属性与绑定02

    将元素绑定在一起 数据绑定最简单的形式是:源对象是WPF元素而且源属性是依赖项属性.依赖项属性内置了更改通知支持,当源对象中改变依赖项属性时,会立即更新目标对象的绑定属性. 元素绑定到元素也是经常使用 ...

  7. JavaFx 监听剪切板实现(Kotlin)

    原文地址: JavaFx 监听剪切板实现(Kotlin) | Stars-One的杂货小窝 软件有个需求,想要实现监听剪切板的内容,若内容符合预期,则进行相关的操作,就可以免去用户手动粘贴的操作,提供 ...

  8. 将Oracle数据库数据每天备份恢复一次数据到另一台服务器上两份数据

    1.创建用户,授权,创建测试数据 创建用户 CREATE USER test identified by 123; 授权 grant dba to test; 创建测试数据 create table ...

  9. SQL实例_11Oracle基本操作

    前言导读 本章介绍了在正常使用Oracle数据库之前进行的常规操作 本章语句的运行需要子啊PLSQL软件中运行 本章导入导出语句需要在虚拟环境中直接运行 1 Oracle创建表空间和用户 --1 创建 ...

  10. 如何无缝迁移 SpringCloud/Dubbo 应用到 Serverless 架构

    作者 | 行松 阿里巴巴云原生团队 本文整理自<Serverless 技术公开课>,"Serverless"公众号后台回复"入门",即可获取系列文章 ...