Scrapy选择器的用法

1.构造选择器:

>>> response = HtmlResponse(url='http://example.com', body=body)
>>> Selector(response=response).xpath('//span/text()').extract()
[u'good']

2.使用选择器(在response使用xpath或CSS查询):

.xpath() 及 .css() 方法返回一个类 SelectorList 的实例, 它是一个新选择器的列表。

>>> response.xpath('//title/text()')
[<Selector (text) xpath=//title/text()>]
>>> response.css('title::text')
[<Selector (text) xpath=//title/text()>]

xpath中 //选取标签,/选择属性, CSS中用 :: 选取属性。

调用 extract() 来获取标签内容,使用extract_frist()来获取第一个元素内容。

>>> response.css('title::text').extract()
[u'Example website']

使用@或attr()来获取属性。

>>> response.xpath('//base/@href').extract()
[u'http://example.com/']

>>> response.css('base::attr(href)').extract()
[u'http://example.com/']

获取指定内容,如image。

>>> response.xpath('//a[contains(@href, "image")]/@href').extract()
[u'image1.html',
 u'image2.html',
 u'image3.html',
 u'image4.html',
 u'image5.html']

>>> response.css('a[href*=image]::attr(href)').extract()
[u'image1.html',
 u'image2.html',
 u'image3.html',
 u'image4.html',
 u'image5.html']

结合正则表达式。

>>> response.xpath('//a[contains(@href, "image")]/text()').re(r'Name:\s*(.*)')
[u'My image 1',
 u'My image 2',
 u'My image 3',
 u'My image 4',
 u'My image 5']

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏java达人

jquery常用选择器

在Dom 编程中我们只能使用有限的函数根据id 或者TagName 获取Dom 对象. 然而在jQuery 中则完全不同,jQuery 提供了异常强大的选择器用...

22160
来自专栏别先生

Javascript中DOM技术的的简单学习

第十四课 DOM技术概述 1:DOM概述   文档对象模型DOM(Document Object Model)定义访问和处理HTML文档的标准方法。DOM 将H...

24450
来自专栏james大数据架构

jQuery方法position()与offset()区别

参考别人写得比较明白的,红色部分为重点吧: 使用jQuery获取元素位置时,我们会使用position()或offset()方法,两个方法都返回一个包含两个属性...

18760
来自专栏个人随笔

初识CSS3

1.CSS规则由两部分构成,即选择器和声明器    声明必须放在{}中并且声明可以是一条或者多条    每条声明由一个属性和值构成,属性和值用冒号分开,每条语句...

34380
来自专栏互联网软件技术

添加标签——无给定标签选项

13330
来自专栏web前端教室

html5-canvas刮刮卡实例-圆形刮痕

知识点 1、globalCompositeOperation属性,该属性表示的是图形的组合方式 2、使用到的是destination-out,它表示只绘制原图形...

24380
来自专栏熊二哥

JQuery快速入门

Write less, do more, I like jQuery. ? ? jQuery是最常用的js库,整体来说非常轻量并易于扩展,对于移动应用可以使用...

208100
来自专栏从零开始学 Web 前端

从零开始学 Web 之 CSS3(一)CSS3概述,选择器

CSS3是CSS(层叠样式表)技术的升级版本,主要包括盒子模型、列表模块、超链接方式、语言模块、背景和边框、文字特效、多栏布局等模块。

12830
来自专栏AndroidTv

前端入门3-CSS基础声明正文-CSS基础

作为一个前端小白,入门跟着这四个来源学习,感谢作者的分享,在其基础上,通过自己的理解,梳理出的知识点,或许有遗漏,或许有些理解是错误的,如有发现,欢迎指点下。

9720
来自专栏俞其荣的博客

Vue.js模板方法

295130

扫码关注云+社区

领取腾讯云代金券