发布时间:2017-12-13 22:54:15编辑:Run阅读(5361)
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
47604
45981
36909
34467
29079
25713
24565
19714
19245
17756
5564°
6155°
5690°
5737°
6703°
5482°
5484°
5988°
5965°
7295°