scrapy选择器css

CSS是网页代码中非常重要的一环,即使不是专业的Web从业人员,也有必要认真学习一下

CSS选择器

.class                .intro              选择class="intro"的所有元素

#id                   #firstname          选择id="firstname"的所有元素

*                     *                   选择所有元素

element               p                   选择所有元素

element,element       div,p               选择所有元素和所有元素

element.element       div p               选择元素内部的所有p元素

[attribute]           [target]            选择带有target属性的所有元素

[attribute=value]     [target=_blank]     选择target="_blank"的所有元素

与XPath选择器相比,CSS选择器稍微复杂一点点,但其强大的功能弥补了这个缺陷

还是之前的spuerHero.xml文件做练习

<superhero>
    <class>
        <name>Tony Stark </name>
        <alias>Iron Man </alias>
        <sex>male </sex>
        <birthday>1969 </birthday>
        <age>47 </age>
    </class>
    <class>
        <name>Peter Benjamin Parker </name>
        <alias>Spider Man </alias>
        <sex>male </sex>
        <birthday>unknow </birthday>
        <age>unknow </age>
    </class>
    <class>
        <name>Steven Rogers </name>
        <alias>Captain America </alias>
        <sex>male </sex>
        <birthday>19200704 </birthday>
        <age>96 </age>
    </class>
</superhero>

练习1,代码如下

Selector(text=body).css('class').extract()

执行结果

练习2,代码如下

Selector(text=body).css('class name').extract()

执行结果

练习3,代码如下

Selector(text=body).css('class name').extract()[0]

执行结果

练习4,代码如下

Selector(text=body).css('[lang="en"]').extract()

执行结果

因为CSS选择器和XPath选择器都可以嵌套使用,所以它们可以互相嵌套,这样一来收集数据更加方便

其它选择器

XPath选择器还有一个.re()方法,用于通过正则表达式来提取数据。然而,不同于使用.xpath()或者.css()方法,.re()方法返回unicode字符串的列表,所以无法构造嵌套式的.re()调用,这种方法不常用。这里就不做示例了,有兴趣可以自行google

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

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏码神联盟

碎片化 | 第四阶段-41-struts2字节流生成验证码-视频

如清晰度低,可转PC网页观看高清版本: http://v.qq.com/x/page/r056700jckx.html 验证码实现 需求: 在登录的页面,增...

29790
来自专栏ytkah

excel判断单元格包含指定内容的函数用=IF(COUNTIF(A1,"*内容*"),"0","1")

  前面我们聊过怎样将Excel包含某字符的单元格填充颜色,这边我们用另外一种方法来实现:excel判断单元格包含指定内容的函数   选中需要显示结果的单元格,...

1.2K60
来自专栏肖蕾的博客

第十四章:TouchPadTouchPadStyleTouchPad控件

API定义:TouchPad的样式 用法:public TouchpadStyle(Drawable background, Drawable knob) ...

7520
来自专栏老司机的简书

CoreText实现图文混排

也好久没来写博客了,主要是最近也工作了,手头的事有点多,一时间也就断了,闲下来了我就来补博客了,刚好最近也做了很多东西,放在这里也算给自己做个笔记吧。

20520
来自专栏前端说吧

JS-点和中括号

39250
来自专栏听雨堂

Mapx自带的工具的理解

         Mapx自带了很多工具,可以轻松实现mi中很多的功能。但一进入具体应用,仍然有很多的问题。          1、能直接用的:选择,缩放   ...

21870
来自专栏数据小魔方

超强脑洞第三弹之——ggplot构造瀑布图

对,就是瀑布图,你没看错。而且是使用ggplot现有图层叠加构造,并没有用任何ggplot的外挂插件。 作图理念是在数据源的构造上,方法与《Excel图表之道》...

30730
来自专栏lonelydawn的前端猿区

一款不可多得的火柴时钟

? 火柴时钟 一款有意思的时钟玩具,原生代码编写,使用 CSS 渲染过渡动效,引入 base64 格式 data url 图片。 引用 <link rel=...

31070
来自专栏听雨堂

页面布局的一些心得

关于表格: 1. 表格用于控制大的板块比较好,居中很方便。同行同列等相对位置不会错乱。 2. 表格难于精确控制,由于历史长,表格属性,css等都能控制,也容易混...

19350
来自专栏前端小作坊

CSS3着重符及其fallback

在中文里面,我们一般会在文字下方加上圆形符号。在日语中会在文字上方加上小顿号。在CSS3中如下属性可以控制着重符号:

11620

扫码关注云+社区

领取腾讯云代金券