css选择器是什么?
要使用css对HTML页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到CSS选择器。HTML页面中的元素就是通过CSS选择器进行控制的。
CSS选择器主要用于选择需要添加样式的元素。
‘#’:代表选择id节点,‘.’:代表class的节点;
获取嵌套:加空格代表层级关系,不加空格代表并列关系;
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的应用举例:
Tiltle = response.css(".entry-header h1::text").extract()#提取title:*(用到伪类选择器)
Create_data=response.css(".entry-meta-hide-on-mobile::text").extract()[0].strip().replace(“·”,” ”)
Comment_num = response.css("a[href='#article-comment'] span::text").extract()[0];
Content = response.css("div.entry").extract()[0]
Tags=response.css(".entry-meta-hide-on-mobile a::text").extract()[0]
Id选择器唯一则用#定位
post_urls = response.css("#archive .floated-thumb .post-thumb a::attr(href)").extract()
for post_url in post_urls:
print(post_url)
ps: xpath解析返回的是一个选择器列表;
extract() [0]:转换为Unicode字符串 列表第一个位置 ;