常用语法
语法 | 说明 |
---|---|
* | 选择所有节点 |
#container | 选择id为container的节点 |
.container | 选择所有class包含container的节点 |
div,p 选择所有 | div 元素和所有 p 元素 |
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://baidu.com”] | 选取所有href属性为http://baidu.com的a元素 |
a[href*=”baidu”] | 选取所有href属性值中包含baidu的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元素 |
li:nth-child(2n) | 选取第偶数个li元素 |
a::attr(href) | 选取a标签的href属性 |
a::text | 选取a标签下的文本 |
使用示例
scrapy shellhttp://blog.jobbole.com/102337/
1.提取title
>>> response.css(".entry-header h1::text").extract()[0]
2.提取日期
>>> response.css("p.entry-meta-hide-on-mobile::text").extract()[0].strip()
3、提取点赞数
>>> response.css(".vote-post-up h10::text").extract()[0]
4、提取收藏数
>>> response.css(".bookmark-btn::text").extract()[0]
5、提取评论数
>>> response.css("a[href='#article-comment'] span::text").extract()[0]
6.提取内容
>>> response.css ( ".entry" ).extract()[0]
7、提取tag标签
>>> response.css(".entry-meta-hide-on-mobile a::text").extract()
参考:https://www.jianshu.com/p/b67d0d851c1a