ICode9

精准搜索请尝试: 精确搜索
首页 > 互联网> 文章详细

scrapy提取数据之:xpath选择器_Scrapy1.5中文文档_Scrapy 中文网

2018-09-30 15:07:34  阅读:974  来源: 互联网

标签:


又是long time no see,想我了没?上面说了第一种scrapy提取数据的方式:css选择器;虽然一招半式足以称霸江湖,但这里老夫还想再传授诸位一招:xpath提取!好好学,技多不压身。还是从几个方面说:一、属性提取;二、内容提取;三、标签内包含标签又包含标签的最外层标签里的所有内容提取;会了这些基本也就会了,反正scrapy

用到的就这么几个知识,少之又少,不要想着除了这些还有神马冰上之下,绝对木有,请放心,如果真的有,我会再末尾给诸君写一些例子,依葫芦画瓢就行,那接下来就开始装13;

一、scrapy xpath 属性提取
这里先给大家列出xpath的选择器类型,如下表:XPath 使用路径表达式在 XML 文档中选取节点。节点是通过沿着路径或者 step 来选取的。 下面列出了最有用的路径表达式:
表达式 描述
nodename 选取此节点的所有子节点。
/ 从根节点选取。
// 从匹配选择的当前节点选择文档中的节点,而不考虑它们的位置。
. 选取当前节点。
.. 选取当前节点的父节点。
@ 选取属性。

上面神马意思或许你还不清楚,没关系,1+1为神马等于2我们也无法证明,会用即可;可以看到上面选取属性用的是:@符号,那我们还是来试试提取最常见的属性:href、src,首先我们试着来提取href,还是用:http://lab.scrapy.cn开刀,就提取首页分页的href,如下图:
scrapy xpath选择器
调试的话我们还是在命令行使用下面命令:

scrapy shell lab.scrapyd.cn

这样的话就能成功打开lab.scrapyd.cn这个页面,那我们要如何使用xpath表达式呢?用到了这么一个函数:response.xpath("表达式"),提取属性的话既然使用:@,那我们要提取href就是:@href,试一下:

In [1]: response.xpath("@href")
Out[1]: []

可以看到神马都木有,why?因为我们木有限定从哪里提取,一般我们都需要加个://,再来试试

In [2]: response.xpath("//@href")
Out[2]:
[<Selector xpath='//@href' data='//cdnjscn.b0.upaiyun.com/libs/normalize/'>,
 <Selector xpath='//@href' data='http://lab.scrapyd.cn/usr/themes/default'>,
 ……
 <Selector xpath='//@href' data='http://lab.scrapyd.cn/tag/王

标签:
来源: http://www.scrapyd.cn/doc/186.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有