xpath和cssselector

原创
2018/06/24 16:44
阅读数 464

xpath

节点:

1. 父节点

2. 子节点

3. 同胞节点,或兄弟节点

4. 先辈节点

5. 后代节点

语法:

1. article 选取所有artical元素的所有子节点

2. /article 选取根元素article

3. article/a 选取所有属于article的子元素的a元素

4. //div 选取所有div子元素(不论出现在文档任何地方)

5. artivle//div 选取所有属于article元素的后代的div元素,不管他出现在article元的之下的何位置

6. //@class 选取所有名为class的属性

语法--谓语

1. /article/div[1] 选取属于article子元素的第一个div元素

2. /article/div[last()] 选取属于article子元素的最后一个div元素

3. /article/div[last()-1] 选取属于article子元素的倒数第二个div元素

4. //div[@lang] 选取所有拥有lang属性的div元素

5. //div[@lang='eng'] 选取所有lang属性为eng的div元素

其他用法

1. /div/* 获取属于div元素的所有子节点

2. //* 获取所有元素

3. //div[@*] 获取所有嗲属性的title元素

4. //div/a| //div/p 获取所有属于div的a元素和p元素

5. //span | //ul 获取文档中的span和ul元素

6. article/div/p | //span 选取所有属于article元素的div元素的p元素以及文档中所有的span元素

7. //span[contains(@class,'vote-post-up')] 寻找class属性中包含vote-post-up的span元素

###################################################################

 

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属性为"http://jobbole.com"的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

例子:

1.response.css(".entry-header h1::text").extract() 提取文本

2. response.css(".url a::attr(href)").extract() 提取某个属性的值

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部