数据清洗之三:css选择器

一、css选择器介绍

html上的元素的表现形式是通过css选择器一对一或者一对多选定,然后定义的。如:p{color:red}就是所有p标签的内容字体都是红色。

二、常见用法

类选择器:元素的class属性,比如class="box"表示选取class为box的元素;
ID选择器:元素的id属性,比如id="box"表示选取id为box的元素;
元素选择器:直接选择文档元素,比如p表示选择所有的p元素,div表示选择所有的div元素;
属性选择器:选择具有某个属性的元素,如*[title]表示选择所有包含title属性的元素、a[href]表示选择所有带有href属性的a元素等;
后代选择器:选择包含元素后代的元素,如li a表示选取所有li 下所有a元素;
子元素选择器:选择作为某元素子元素的元素,如h1 > strong表示选择父元素为h1 的所有 strong 元素;
相邻兄弟选择器:选择紧接在另一元素后的元素,且二者有相同父元素,如h1 + p表示选择紧接在 h1 元素之后的所有p元素;

三、scrapy 中的css使用方法

以a元素来举例说明
response.css(‘a’):返回的是selector对象;
response.css(‘a’).extract():返回的是a标签对象;
response.css(‘a::text’).extract_first():返回的是第一个a标签中文本的值;
response.css(‘a::attr(href)’).extract_first():返回的是第一个a标签中href属性的值;
response.css(‘a[href*=image]::attr(href)’).extract():返回所有a标签中href属性包含image的值;
response.css(‘a[href*=image] img::attr(src)’).extract():返回所有a标签下image标签的src属性;

四、常用的表达式

还是两个问题:

(一)找到标签

.class
#id
属性
=为
~=包含
︿=以什么开头
$=以什么结尾
a b 所有子孙中的b
a>b 只子元素中的 b
a+b 紧接在a后的b

(二)提取内容

::text 取值
::attr(href) 取属性

你可能感兴趣的:(爬虫基础,数据清洗,css)