xpath解析html
xpath是通用的,爬虫必备
- xpath使用路径表达式在xml和html中进行导航
- xpath包含标准函数库
- xpath是w3c的一个标准,脱离语言而存在的
xpath语法
| 表达式 | 说明 |
| article | 选取所有article元素的所有子节点 |
| /article | 选取根元素article |
| article/a | 选取所有article的子元素的a元素 |
| //div | 选取所有div子元素(无论出现在文档任何地方) |
| article//div | 选取所有属于article元素的后带的div元素,不管它出现在article下的任何位置 |
| //@class | 选取所有名为class属性的元素 |
css选择器
| 表达式 | 说明 |
| * | 选择所有节点 |
| #container | 选择id为container的节点 |
| .container | 选择所有class包含为container的节点 |
| li a | 选取所有li下的所有a节点 |
| ul + p | 选择ul后面的第一个p元素 |
| div#container>ul | 选取id为container的div的ul子元素 |
| p~ul | 选择前面有元素的每个元素 |
| a[title] | 选取所有有title属性的a元素 |
| a[href="https://jobbole.com"] | 选取href属性为https://jobbole.com的所有a元素 |
| a[href*="jobbole"] | 选取所有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 |