首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python爬虫11-XML与XPath

Python爬虫11-XML与XPath

作者头像
py3study
发布2020-01-16 22:56:17
5230
发布2020-01-16 22:56:17
举报
文章被收录于专栏:python3python3
GitHub代码练习地址:用lxml解析HTML,文件读取,etree和XPath的配合使用:https://github.com/Neo-ML/PythonPractice/blob/master/SpiderPrac17_xpath%26lxml.py
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元素
lxml库
- python的HTML/XML的解析器
- 官方文档:   http://lxml.de/index.html
- 功能:
    - 解析HTML
    - 文件读取
    - etree和XPath的配合使用
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-05-20 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档