除了正则和XPATH以外,scrapy中还支持第三种选择器,那就是CSS选择器;下面就一一介绍常见的CSS选择器的语法
1. 标签属性值的提取
例如我们要提取下面标签中<a>
的href
的值:
<li class="current"><a href="[http://lab.scrapyd.cn/page/1/](http://lab.scrapyd.cn/page/1/)">1</a>哈哈哈</li>
语法:
标签名::attr(属性名)
或 .类名 [标签名]::attr(属性名)
response.css("a::attr(href)")
response.css(".current a::attr(href)")
2. 提取标签的内容
以上述为例,我们提取<li>
标签中的文字内容还可以直接使用::text
:
response.css("li::text").extract()
3. 星号(*)的使用
我们需要选区一个标签的所有子标签的文字内容,例如:
<div class="post-content">
<p>如果你因失去了太阳而流泪,那么你也将失去群星</p>
<p>随便写点东西吧</p>
</div>
我们要获取div下所有p标签的内容:
response.css(".post-content *::text").extract()
网友评论