extract()和extact_first()的区别
extract()和extact_first()都是提取Selector
的data
部分。但现在你要先知道什么是Selector
。
Selector是选择器的意思。具体定义我不知道,但通过下面的例子,你就可以知道选择器是个什么东东。首先看一段代码:
<head>
<meta charset="UTF-8">
<title>Quotes to Scrape</title>
</head>
这里,你还要知道response是什么:它是scrapy.Request
返回的一个 TextResponse的实例,以参数形式传递给回调函数。上面的代码便是response.text
中的一部分.关于response.text的全部内容可以点击这个网站,调出开发者工具查看。
安装好scrapy
后,在cmd下输入scrapy shell "http://quotes.toscrape.com/page/1/"
,然后再输入 response.css('title')
便可以看到:
[<Selector xpath='descendant-or-self::title' data='<title>Quotes to Scrape</title>'>]
这便是选择器。
再看一下下图:
图中,我们可以看到,extract()和extact_first()都是提取Selector
的data
部分。但是extact_first()多做了一步,就是将提取的内容从列表里拿出来。红色框里已经画了出来。
还有便是extact_first()可以在找不到元素的情况下,避免IndexError
和返回none
.
extract()和extact_first()的区别的更多相关文章
- JDBC ODBC区别
一.JDBC(Java DataBase Connectivity standard) 1.JDBC,它是一个面向对象的应用程序接口(API), 通过它可访问各类关系数据库. 2. 驱动程序(JDBC ...
- eclipse 中的 jar file 和 runnable jar file的区别
转自于:http://blog.csdn.net/lijiecong/article/details/6266234 java最难学的就是角落的东东了,不愧叫做java平台.搜索了一把总算明白了. 直 ...
- 『重构--改善既有代码的设计』读书笔记----Extract Method
在编程中,比较忌讳的一件事情就是长函数.因为长函数代表了你这段代码不能很好的复用以及内部可能出现很多别的地方的重复代码,而且这段长函数内部的处理逻辑你也不能很好的看清楚.因此,今天重构第一个手法就是处 ...
- 在linux下面解压用的zxpf是什么意思,它跟zxvf有啥区别
在linux下面解压用的zxpf是什么意思,它跟zxvf有啥区别 linux 命令中tar后跟的zxvf是什么意思:.tar.gz是一个压缩包 .tar只是打包而没有压缩 z:表示 tar 包是被 ...
- 详解webpack中的hash、chunkhash、contenthash区别
hash.chunkhash.contenthash hash一般是结合CDN缓存来使用,通过webpack构建之后,生成对应文件名自动带上对应的MD5值.如果文件内容改变的话,那么对应文件哈希值也会 ...
- Extract Dataset
FROM <SAP PROGRAM DESIGN> Extract Datasets简称为Extract,是SAP中除了内表之外的另一种大量内存数据处理方式,允许用户动态地存储并排序结构化 ...
- TRUNCATE TABLE 与 DELETE的区别
delete from aatruncate table aa 区别1.delete from后面可以写条件,truncate不可以2.delete from记录是一条条删的,所删除的每行记录都会进日 ...
- [转]SQLServer和Oracle,存储过程区别,常用函数对比
本文转自:http://www.cnblogs.com/neru/archive/2011/08/18/2144049.html 以前一直用sqlserver,只有很少的一点oracle的经验,现在要 ...
- eclipse中jar file与runnable jar file的区别
直接运行 .class的方法 java -cp . com.network.Chat , 不用加.class后缀 从eclipse中export 的jar file,仅仅是把.class ...
随机推荐
- CF10D LCIS 最长公共上升子序列
题目描述 This problem differs from one which was on the online contest. The sequence a1,a2,...,an a_{1}, ...
- Update(Stage5):DMP项目_业务介绍_框架搭建
DMP (Data Management Platform) 导读 整个课程的内容大致分为如下两个部分 业务介绍 技术实现 对于业务介绍, 比较困难的是理解广告交易过程中各个参与者是干什么的 对于技术 ...
- php学习函数如何执行的
入口栈abc(4)--------abc(4)------abc(3)-----abc(2)再返回上一层栈,执行完后返回上一层.输出$n=2-------$n=2-------$n=3
- php 基础知识 post 和get 两种传输方式的区别
1.post更安全(不会作为url的一部分,不会被缓存.保存在服务器日志.以及浏览器浏览记录中) 2.post发送的数据量更大(get有url长度限制) 3.post能发送更多的数据类型(get只能发 ...
- SpringBoot下配置Druid
什么是Druid:Druid是阿里发开的一套基于database的监控平台,相对于其他监控来说对于中文的支持更亲民.. 前言:最近这段时间发现项目整体运行响应速度较慢,打算对系统进行深层次的优化(尤其 ...
- Asteroids!_poj2225
这是一个立方体的空间的路径搜索问题,若可达输出步数,不可达输出“NO ROUTE” 一道……课后题 输入的话我是按字符输入这个空间的 然后普通的bfs,一个方向数组,一个空间数组(因为只用一次,懒的再 ...
- 模块学习--OS
1 返回当前目录信息 >>> os.getcwd() 'D:\\7_Python\\S14' 2 改变路径 >>> os.chdir('d:\\')#os.chdi ...
- 【转】How to create a test plan
What is a Test Plan? A TEST PLAN is a detailed document that describes the test strategy, objectives ...
- 5-2 使用antDesign的Table 及 modal(对话情景框) 功能
1,进入antDesign官网,粘贴table代码 2,看代码各个部分实现什么功能,根据需求改代码 表格类似如下: 代码如下: const columns = [ { title: 'Name', d ...
- 八 Spring的IOC的XML和注解的区别及其整合开发
xml和注解的区别 xml和注解整合开发 注解:取消扫描配置开启注解配置 扫描:<context:component-scan base-package="" /> ...