欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

Python爬虫11-XML与XPath概述

程序员文章站 2022-12-28 12:28:06
XML- XML(EXtensibleMarkupLanguage) - 官方文档http://www.w3school.com.cn/xml/index.asp- 概念:父节点,子节点,先辈节点,兄弟节点,后代节点XPath- XPath(XML Path Language), 是一门在XML文档 ......
xml
- xml(extensiblemarkuplanguage)
- 官方文档http://www.w3school.com.cn/xml/index.asp
- 概念:父节点,子节点,先辈节点,兄弟节点,后代节点

xpath
- xpath(xml path language), 是一门在xml文档中查找信息的语言,
- 官方文档: http://www.w3school.com.cn/xpath/index.asp
- xpath开发工具
- 开源的xpath表达式工具: xmlquire
- chrome插件: xpath helper
- firefox插件: xpath checker

- 常用路径表达式:
- nodename: 选取此节点的所有子节点
- /: 从根节点开始选
- //: 选取元素,而不考虑元素的具体为止
- .: 当前节点
- ..:父节点
- @: 选取属性
- 案例:
- booksotre: 选取bookstore下的所有子节点
- /booksotre: 选取根元素
- booksotre/book: 选取bookstore的所有为book的子元素
- //book: 选取book子元素
- //@lang:选取名称为lang的所有属性

- 谓语(predicates)
- 谓语用来查找某个特定的节点,被向前在方括号中
- /bookstore/book[1]: 选取第一个属于bookstore下叫book的元素
- /bookstore/book[last()]: 选取最后一个属于bookstore下叫book的元素
- /bookstore/book[last()-1]: 选取倒数第二个属于bookstore下叫book的元素
- /bookstore/book[position()<3]: 选取属于bookstore下叫book的前两个元素
- /bookstore/book[@lang]: 选取属于bookstore下叫book的,含有属性lang元素
- /bookstore/book[@lang="cn"]: 选取属于bookstore下叫book的,含有属性lang的值是cn的元素
- /bookstore/book[@price < 90]: 选取属于bookstore下叫book的,含有属性price的,且值小于90的元素
- /bookstore/book[@price < 90]/title: 选取属于bookstore下叫book的,含有属性price的,且值小于90的元素的子元素title

- 通配符
- `*` : 任何元素节点
- @*: 匹配任何属性节点
- node(): 陪陪任何类型的节点

- 选取多个路径
- //book/tile | //book/author : 选取book元素中的title和author元素
- //tile | //price: 选取文档中所有的title和price元素