爬虫基本原理与实战---12、选择器的用法

Scrapy提取数据有自己的一套机制,被称作选择器(selectors),通过特定的Xpath或者CSS表达式来选择HTML文件的某个部分
Xpath是专门在XML文件中选择节点的语言,也可以用在HTML上。
CSS是一门将HTML文档样式化语言,选择器由它定义,并与特定的HTML元素的样式相关联。

XPath选择器

参考:http://www.cnblogs.com/MUMO/p/5732836.html
常用的路径表达式,这里列举了一些常用的,XPath的功能非常强大,内含超过100个的内建函数。
下面为常用的方法:

表达式说明
nodeName选取此节点的所有节点
/nodeName选取根元素nodeName
nodeName/a选取所有属于nodeName的子元素的a元素
//div选取所有div元素(不论出现在文档的任何地方)
nodeName//div选取所有属于nodeName元素的后代的div元素,不管它出现在nodeName之下的任何位置
//@class选取所有有名为class的属性的节点
/nodeName/div[1]选取属于nodeName子元素的第一个div元素
/nodeName/div[last()]选取属于nodeName子元素的最后一个div元素
/nodeName/div[last()-1]选取属于nodeName子元素的倒数第二个div元素
//div[@lang]选取所有拥有lang属性的div元素
//div[@lang=’eng’]选取所有lang属性为eng的divf元素
/div/*选取属于div元素的所有子节点
//*选取所有元素
//div[@*]选取所有带属性的divf元素
//div/a | //div/p选取所有div元素的a和p元素
//span | //ul选取文档中的span和ul元素
nodeName/div/p | //span选取所有属于nodeName元素的div元素的p元素,以及文档中所有有span元素
//div/text()提取出div下面的内容
xpath(‘//div/text()’).extract()提取出数据内容列表

CSS选择器

参考:https://blog.csdn.net/ahri_j/article/details/72196823
CSS层叠样式表,语法由两个主要部分组成:选择器,一条或多条声明
Selector {declaration1;declaration2;……}
下面为常用的使用方法

表达式说明
container选取id为container的节点
.container选取所有class包含container的节点
li a选取所有li下的所有a节点
ul + p选取ul后面的第一个p元素
div#container > ul选取id为container的div的第一个ul子元素
ul ~ p选取与ul相邻的所有p元素
a[title]选取所有有title属性的a元素
a[href=’http://jobbole.com“]选取所有href属性为jobbole.com值的a元素
a[href*=’jobbole’]选取所有href属性包含jobbole的a元素
a[href^=”http”]选取所有href属性值以http开头的a元素
a[href$=”.jpg”]选取所有href属性值以.jpg结尾的a元素
input[type=radio]:checked选择选中的input元素
div:not(#container)选取所有id非container的div元素
li:nth-child(3)选择第三个li元素
tr:nth-child(2n)选择第偶数个tr元素

参考:https://www.cnblogs.com/zhaof/p/7189860.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值