Python 分布式爬虫框架 Scrapy 4-5 css选择器实现字段解析

表达式

说明

*

选择所有节点

#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*=”jobole”]

选取所有href属性包含jobbole的a元素

a[href^=“http”]

选取所有href属性值以http开头的a元素

a[href$=“.jpg”]

选取所有href属性值以.jpg结尾的a元素

input[type=radio]:checked

选择选中的radio的元素

div:not(#container)

选取所有id非container的div属性

li:nth-child(3)

选取第三个li元素

tr:nth-child(2n)

第偶数个tr

大家可以自行通过上一节的方式,使用css选择器实现字段解析。

css选择器内容丰富,上面只是部分功能。例如:

.a .b

表示class为a下的class为b的标签。

而:

.a.b

则表示class既有a又有b的标签。

需要说明的是,css选择器中有与xpath中的 /text() 功能一样的伪类选择器:

::text

此外还有一个::attr()伪类选择器,例如下面可以获取标签中的href属性的值:

::attr(href)

将这个加在css选择字符串的后方即可实现内容提取。

还有一点说明,python3将所有的字符编码都转为Unicode,这是py3与py2的区别。

最后要说的是,在解析时,有时id是与文章url挂钩的,此时id不具有通用性,不可作为筛选条件。

发布了101 篇原创文章 · 获赞 26 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/liujh_990807/article/details/100045408
今日推荐