scrapy框架开发爬虫实战——css语法

本文介绍了使用Scrapy框架进行爬虫开发时如何运用CSS选择器。CSS选择器用于定位HTML文档中的特定元素,其语法比XPath简单,但通过Python库cssselect可以将其转换为XPath表达式。文中列举了CSS选择器的基本语法,包括元素选择、复合选择、后代选择、子元素选择等,并提供了相关用法实例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

css选择器

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

css基本语法表

css用法例子

E: 选中E元素。

# 选中所有的img
>>> response.css('img')

E1,E2: 选中E1和E2元素。

# 选中所有base和title
>>> response.css('base,title')

E1 E2: 选中E1后代元素中的E2元素。

# div 后代中的img
>>> response.css('div img')

E1>E2: 选中E1子元素中的E2元素

# body 子元素中的div
>>> response.css('body>div')

[ATTR]: 选中包含ATTR属性的元素。

# 选中包含style属性的元素
>>> response.css('[style]')

[ATTR=VALUE]: 选中包含ATTR属性且值为VALUE的元素。

# 选中属性id值为images-1的元素
>>> response.css('[id=images-1]')

E:nth-child(n): 选中E元素, 且该元素必须是其父元素的第n个子元素。

# 选中每个div的第一个a
>>> response.css('div>a:nth-child(1)')

# 选中第二个div的第一个a
>>> response.css('div:nth-child(2)>a:nth-child(1)')

E:first-child: 选中E元素, 该元素必须是其父元素的第一个子元素。
E:last-child: 选中E元素, 该元素必须是其父元素的倒数第一个子元素。

# 选中第一个div的最后一个a
>>> response.css('div:first-child>a:last-child')

E::text: 选中E元素的文本节点。

# 选中所有a的文本
>>> sel = response.css('a::text')

更多详细内容可以参看CSS选择器文档: https://www.w3.org/TR/css3-selectors/
 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值