一. XPATH

1. 什么是xpath?

xpath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历。

2. 常用的xpath开发工具

(1) Chrome插件XPath Helper(推荐使用)。

(2) Firefox插件Try XPath。

3. xpath语法(核心)

(1) 选取节点:XPath 使用路径表达式来选取 XML 文档中的节点或者节点集。这些路径表达式和我们在常规的电脑文件系统中看到的表达式非常相似。

表达式

描述

示例

结果nodename

选取此节点的所有子节点

bookstore

选取bookstore下所有的子节点

/

如果是在最前面,代表从根节点选取。否则选择某节点下的某个节点

/bookstore

选取根元素下所有的bookstore节点

//

从全局节点中选择节点,随便在哪个位置

//book

从全局节点中找到所有的book节点

@

选取某个节点的属性

//book[@price]

选择所有拥有price属性的book节点

.

当前节点

./a

选取当前节点下的a标签

(2) 谓语:谓语用来查找某个特定的节点或者包含某个指定的值的节点,被嵌在方括号中。

路径表达式

描述/bookstore/book[1]

选取bookstore下的第一个子元素

/bookstore/book[last()]

选取bookstore下的倒数第二个book元素。

bookstore/book[position()<3]

选取bookstore下前面两个子元素。

//book[@price]

选取拥有price属性的book元素

//book[@price=10]

选取所有属性price等于10的book元素

(3) 通配符 *

通配符

描述

示例

结果*

匹配任意节点

/bookstore/*

选取bookstore下的所有子元素。

@*

匹配节点中的任何属性

//book[@*]

选取所有带有属性的book元素。

(4) 选取多个路径 |:通过在路径表达式中使用“|”运算符,可以选取若干个路径。

//bookstore/book | //book/title  # 选取所有book元素以及book元素下所有的title元素

二. LXML库

1. 什么是lxml?

lxml 是 一个HTML/XML的解析器,主要的功能是如何解析和提取 HTML/XML 数据。

lxml和正则一样,也是用 C 实现的,是一款高性能的 Python HTML/XML 解析器,我们可以利用之前学习的XPath语法,来快速的定位特定元素以及节点信息。

需要安装C语言库,可使用 pip 安装:pip install lxml

2. lxml和xpath的结合使用(注意parse函数和HTML函数的用法)

(1) 从外部文件引入html等文档进行解析

from lxml import etree

# parse引入外部文档进行解析

html = etree.parse('hello.html')

print type(html) # 显示etree.parse() 返回类型

result = html.xpath('//li')

print(result) # 打印

标签的元素集合

(2) 直接对字符串进行解析(爬虫常用)

# 这里只是打个样,具体的参数填入还需看个人需求

from lxml import etree

# html_str是unicode类型的字符串,通常是爬取下来的text类型数据

html = etree.HTML(html_str)

# 根据得到的html对象 调用 xpath语法 进行解析

div_list = html.xpath("//div[@class='col1 old-style-col1']/div")

本文地址:https://blog.csdn.net/qq_39504519/article/details/107080785

希望与广大网友互动??

点此进行留言吧!

xpath语法java_xpath语法及其使用教程相关推荐

  1. AST语法结构树初学者完整教程

    AST语法结构树初学者完整教程 编写你的第一个 Babel 插件 不太喜欢上来就讲大道理,先来个小栗子,做个简单而又实用的功能,做完后,理论你就理解一大半了. 我们需要antd里面的一个组件Butto ...

  2. 10.16 my学习日记 (XPath的基础语法,lxml库的应用)

    10.16 my学习日记(XPath的基础语法,lxml库的应用) XPath的基础语法 XPath查找标签 XPath谓语 lxml库在爬虫中的应用 etree库etree_Element对象 使用 ...

  3. Java解析SQL生成语法树_Atitit.sql ast 表达式 语法树 语法 解析原理与实现 java php c#.net js python...

    Atitit.sql ast 表达式 语法树 语法 解析原理与实现java php c#.net js python 1.1.Sql语法树ast如下图锁死 2.SQL语句解析的思路和过程 2.1.le ...

  4. Python基础语法——基础语法、变量

    Python基础语法 基础语法 变量 一.基础语法 注释 - 代码中不会被编译成机器码的部分,即不影响程序功能的部分 单行注释:在一行内容前加#,让这行内容变成注(ctrl+/) 即,# 注释内容 # ...

  5. 一文读懂XPath基本语法_XPath语法详解_XPath教程

    因为最近在学习与整理有关python爬虫的文章,连带遇到XPath的使用,就顺便一起整理出来. XPath与自动化的关系 XPath是一门在XML文档中查找信息的语言,可用来在XML文档中对元素和属性 ...

  6. Python的Xpath介绍和语法详解

    1.简介 XPath是一门在XML和HTML文档中查找信息的语言,可以用来在XML和HTML文档中对元素和属性进行遍历 XPath的安装 Chrome插件XPath Helper 点Chrome浏览器 ...

  7. python语法教程-Python语言的核心语法(1)(语法教程)(参考资料)

    1.介绍 本参考手册描述了Python编程语言.它不是一个教程. 虽然我试图尽可能精确,但我选择使用英语而不是正式的规范,除了语法和词法分析.这应该使文档对普通读者更容易理解,但会留下歧义的余地.因此 ...

  8. html5正则表达式语法,正则表达式 – 语法 | 菜鸟教程

    正则表达式 - 语法 正则表达式(regular )描述了一种字符串匹配的模式(pattern),可以用来检查一个串是否含有某种子串.将匹配的子串替换或者从某个串中取出符合某个条件的子串等. 例如: ...

  9. python接口自动化测试书籍_skPython接口自动化测试 自动化测试教程书籍 用Python实现UI自动化测试 轻松入门Python语法 MySQL数据库 Python基础教程书籍...

    1 本书整体设计思想 . 1 1.1 为什么要做懂技术的测试人员 . 2 1.2 为什么选择这本书. 4 1.3 为什么选择Python 5 1.4 本书能给你带来什么 . 6 1.5 自动化代码的设 ...

最新文章

  1. Apexchart整数多出小数点
  2. 数字证书 - Java加密与安全
  3. Delphi中String与PAnsiChar转换
  4. c#使用Path.Combine的一个坑
  5. 【操作系统】进程的创建与终止过程中的父子进程
  6. Mysql表引擎的切换
  7. linux安装curl扩展
  8. 接口自动化测试框架实例教程
  9. 常规英文字体 电商_最强电商美工逆袭系列1——最全的电商字体应用详解
  10. 处女座的期末复习-贪心
  11. java 泛型对象实例化_java泛型对象的实例化
  12. python pymysql 下载_Python PyMySQL模块下载和安装
  13. Android安全 Hook技术,Android下通过hook技术实现透明加解密保障数据安全
  14. LeetCode1818:绝对差值和
  15. Android桌面插件宽度,android 屏幕适配插件
  16. 2021-07-29 vue事件冒泡和事件捕获,阻止冒泡和阻止浏览器默认行为
  17. 智课雅思词汇---二十六、形容词后缀-ble
  18. 话费充值接口文档源码(2)
  19. Nexus搭建Maven私服并使用私服
  20. 关于PCB的机械层和差分布线、RC滤波

热门文章

  1. php字符串6,6.PHP字符串
  2. SpringBoot整合JPA 数据库自动增加字段问题记录
  3. ‘XXX‘ is declared but its value is never read.
  4. PMP、IPMP、ITPMP、CPMP详解(项目管理认证类详解)
  5. ORACLE优化器RBO与CBO介绍总结
  6. 程序员常见的口头禅,哈哈哈哈~
  7. UBTC主网已实现智能合约及混合共识机制!
  8. 电子设计教程50:16*16LED点阵屏驱动-LED点阵屏工作原理
  9. 【AD常见问题】STM32C8T6最小系统板的间距
  10. 如何使用MA均线来交易?