【爬虫提取数据三板斧之二】CSS 选择器资料整理

【爬虫提取数据三板斧之二】CSS 选择器资料整理

CSS即层叠样式表,其选择器是一种用来确定HTML文档中某部分位置的语言。 CSS选择器的语法比XPath更简单一些,但功能不如XPath强大。实际上,当我们调用selector对象的CSS方法时,其内部会使用Python库cssselect将CSS选择器表达式翻译成XPath表达式,然后调用selector对象的XPATH方法。

CSS选择器方法

“CSS” 列指示该属性是在哪个 CSS 版本中定义的。(CSS1、CSS2 还是 CSS3。)

选择器例子例子描述CSS
.class.intro选择 class=”intro” 的所有元素。1
#id#firstname选择 id=”firstname” 的所有元素。1
**选择所有元素。2
elementp选择所有 <p> 元素。1
element,elementdiv,p选择所有 <div> 元素和所有 <p> 元素。1
element elementdiv p选择 <div> 元素内部的所有 <p> 元素。1
element 选择器”>element>elementdiv>p选择父元素为 <div> 元素的所有 <p> 元素。2
element+elementdiv+p选择紧接在 <div> 元素之后的所有 <p> 元素。2
[attribute][target]选择带有 target 属性所有元素。2
[attribute=value][target=_blank]选择 target=”_blank” 的所有元素。2
[attribute~=value][title~=flower]选择 title 属性包含单词 “flower” 的所有元素。2
[attribute|=value][lang|=en]选择 lang 属性值以 “en” 开头的所有元素。2
:linka:link选择所有未被访问的链接。1
:visiteda:visited选择所有已被访问的链接。1
:activea:active选择活动链接。1
:hovera:hover选择鼠标指针位于其上的链接。1
:focusinput:focus选择获得焦点的 input 元素。2
:first-letterp:first-letter选择每个 <p> 元素的首字母。1
:first-linep:first-line选择每个 <p> 元素的首行。1
:first-childp:first-child选择属于父元素的第一个子元素的每个 <p> 元素。2
:beforep:before在每个 <p> 元素的内容之前插入内容。2
:afterp:after在每个 <p> 元素的内容之后插入内容。2
:lang(language)p:lang(it)选择带有以 “it” 开头的 lang 属性值的每个 <p> 元素。2
element1~element2p~ul选择前面有 <p> 元素的每个 <ul> 元素。3
[attribute^=value]a[src^=”https”]选择其 src 属性值以 “https” 开头的每个 <a> 元素。3

常用CSS选择器方法

  • 选中所有的E元素,直接元素名
    >>>response.css('img')
  • 选中E1和E2元素,使用‘,’逗号
    >>>response.css('E1,E2')
  • 选中E1后代元素中的E2元素,使用空格
    >>>response.css('E1 E2')
  • 选中E1志愿书中的E2元素,使用‘>’符号
    >>>response.css('E1>E2')
  • 选中包含ATTR属性的元素,使用‘[]’符号
    >>>response.css('[attr]')
  • 选中包含ATTR属性且值为VALUE的元素,使用‘[attr=value]’符号
    >>>response.css('[attr=value]')
  • 选中E元素,且该元素必须是其父元素的第n个子元素,使用‘E:nth-child(n)’
    >>>response.css('E:nth-child(n)')
  • 选中E的第一个子元素,使用‘E:first-child’
  • 选中E的最后一个子元素,使用‘E:last-child’
  • 选中E元素的文本节点,使用‘E::text’
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值