xpath笔记-转

笑面浮屠 笑面浮屠     2022-09-15     214

关键词:

来自Xavier的笔记:https://segmentfault.com/u/lihanx  and https://segmentfault.com/q/1010000008883941

菜鸟Xpath教程:http://www.runoob.com/xpath/xpath-tutorial.html

一、基本语法

1. 表达式

nodename    # 节点名
/           # 若在起始位置,则表明从根节点选取node;若不在起始位置,表明选取子节点,本意都是选取全部子节点
//          # 从任意位置选取node节点
@           # 选取属性
*           # 通配符

2.谓语

[n]                  # 第n个
[last()]             # 最后一个
[position()<n]       # 第n个位置之前的全部指定节点
node[@attr]          # 拥有attr属性的节点
node[@attr=‘val‘]    # 属性attr的值为val的节点

二、轴

A/child::B ==> A/B         # 选取A节点的子节点B
parent                     # 父节点
descendant                 # 所有后代节点
ancestor                   # 所有先辈节点
descendant-or-self         # 所有后代元素及其本身
preceding-sibling          # 所有先辈节点及其本身
following-sibling          # 当前节点后面的同级节点
preceding                  # 整个文档中,当前节点之前的所有节点
preceding-sibling          # 父节点中,当前节点之前的所有同级节点
following                  # 整个文档中,当前节点之后的所有节点
self                       # 当前节点本身
attribute                  # 当前节点的所有属性
namespace                  # 当前节点所有的命名空间

三、运算符

|          # 并集
+          # 加法
-          # 减法
*          # 乘法
div        # 除法
=          # 等于
!=         # 不等于
<          # 小于
<=         # 小于
>          # 大于
>=         # 大于等于
or         # 或
and        # 与
mod        # 取余

四、示例

element_dom.xpath(“/div”)
# 选取根节点的子节点div(包含其全部后代节点)

element_dom.xpath("//p")
# 选取任意位置的p节点

element_dom.xpath("//div[@class=‘title‘]")
# 选取class值为title的div节点

element_dom.xpath("//div[@class=‘item_list‘]//li/a/@href")
# 选取任意位置的class为item_list的div节点 的全部子节点li 中a节点的href属性

element_dom.xpath("/div/@name")
# 选取div节点的name属性值

element_dom.xpath("/div/descendant::text()")
# 选取div节点全部后代节点的文本

element_dom.xpath("//div/p|//ul/li/a")
# 选取div节点的子节点pa 与 ul/li/a 的并集

element_dom.xpath("//div/p[2]")
# 选取div中名为p的子节点的第2个

element_dom.xpath("//div/*[id=‘name‘]")
# 选取div的子节点中id值为name的任意节点

element_dom.xpath("(//div//p)[1]")
# //div//p结果集中的第一个结果

xpath语法学习笔记

xml示例文档<?xmlversion="1.0"encoding="ISO-8859-1"?><bookstore><book><titlelang="eng">HarryPotter</title><price>29.99</price></book><book><titlelan 查看详情

xpath语法学习笔记-09052016

<?xmlversion="1.0"encoding="ISO-8859-1"?><catalog> <cdcountry="USA">  <title>EmpireBurlesque</title>  <artist>BobDylan</artist>  查看详情

xpath路径表达式笔记(转载)

作者: 阮一峰日期: 2009年7月6日http://www.ruanyifeng.com/blog简单说,xpath就是选择XML文件中节点的方法。所谓节点(node),就是XML文件的最小构成单位,一共分成7种。-element(元素节点)-attribute(属性节点)-text(文本节点... 查看详情

笔记:xml-解析文档-xpath定位信息

如果需要定位某个XML文档中的一段特定信息,那么通过遍历DOM 树的众多节点来进行行查找显得有些麻烦,XPath语言使得访问树节点变得很容易,例如,下面的XML文档结构:<?xml version="1.0" encoding="utf-8" ?> ... 查看详情

XPath 笔记本:XError:Focus for / 不存在;代码:XPDY0002

】XPath笔记本:XError:Focusfor/不存在;代码:XPDY0002【英文标题】:XPathnotebook:XError:Focusfor/isabsent;code:XPDY0002【发布时间】:2022-01-2109:38:32【问题描述】:我有一个简单的问题要问你。我想统计一下沉重的XML文件中包含多少个节点。... 查看详情

学习笔记updatexml()mysql显错注入

在学习之前,需要先了解 UpdateXml()。UPDATEXML(XML_document,XPath_string,new_value); 第一个参数:XML_document是String格式,为XML文档对象的名称,文中为Doc 第二个参数:XPath_string(Xpath格式的字符串),如果不了解Xpath语法,可以在网... 查看详情

xpath中的text()和string()区别(转)

原文地址:http://blog.csdn.net/jiangchao858/article/details/63314426本质区别text()是一个nodetest,而string()是一个函数,data()是一个函数且可以保留数据类型。此外,还有点号(.)表示当前节点。使用要点XML例子:<book><author>TomJohn</... 查看详情

2023爬虫学习笔记--优化xpath解析代码

一、目标网站https://www.aqistudy.cn/historydata/二、分析要获取数据,热门城市、全部城市三、代码实现1、获取网页源码importrequests目标地址="https://www.aqistudy.cn/historydata/"头="User-Agent":"Mozilla/5.0(WindowsNT10.0;WOW64)A... 查看详情

代码review_学习笔记_1(代码片段)

代码review(一)问题:获取详情页链接的xpath语句id值是不固定的解决:先获取所有的id值,再将id值拼接到xpath语句中获取详情页链接总结:观察html代码,找到规律#获取全局信息result=response.xpath('... 查看详情

xml学习笔记

关于XML的一些学习笔记1.什么是XML2.XML与HTML的区别3.XPath表示1.什么是XMLXML即可扩展标记语言(EXtensibleMarkupLanguage),是一种标记语言但也与HTML不同。其设计宗旨为传输数据而不是显示数据,且XML的标签需要自行定... 查看详情

xml学习笔记

关于XML的一些学习笔记1.什么是XML2.XML与HTML的区别3.XPath表示1.什么是XMLXML即可扩展标记语言(EXtensibleMarkupLanguage),是一种标记语言但也与HTML不同。其设计宗旨为传输数据而不是显示数据,且XML的标签需要自行定... 查看详情

htmlagilitypack使用——xpath注意事项

【转】HtmlAgilityPack使用——XPath注意事项在使用HtmlAgilityPack这个开源的类库进行网页内容解析的时候是非常的方便(使用方法见另一篇博客《HTML解析:基于XPath的C#类库HtmlAgiliytyPack》),其基于XPath路径语法进行高效的选择文档... 查看详情

使用 xpath 访问具有命名空间的子节点

...间】:2021-07-0912:12:00【问题描述】:如何使用Xpath读取子笔记的内容?我已经试过了:varxml=newXmlDocument();xml.Load("server-status.xml");varns=newXmlNamespaceManager(xml.NameTable) 查看详情

xapth(笔记)

xpath的常见用法  补充contians 例子://div[contians(@class,"title","p")]          查看详情

2023爬虫学习笔记--selenium库的实际应用

一、安装selenium库文件pipinstallselenium二、查看浏览器版本信息三、下载对应的驱动程序http://chromedriver.storage.googleapis.com/index.html四、代码实现1、打开浏览器浏览器=webdriver.Chrome(r./chromedriver)2、访问网站浏览器.get("https://www.baidu.com")... 查看详情

2023爬虫学习笔记--selenium库的实际应用

一、安装selenium库文件pipinstallselenium二、查看浏览器版本信息三、下载对应的驱动程序http://chromedriver.storage.googleapis.com/index.html四、代码实现1、打开浏览器浏览器=webdriver.Chrome(r'./chromedriver')2、访问网站浏览器.get("https... 查看详情

selenium自学笔记---下拉框定位元素select

下拉框1.先定位select然后在定位option city=driver.find_element_by_id("selCities_0") city.find_element_by_xpath("//option[@value=‘50‘]").click()或者driver.find_element_by_id("selCities_0").find_element_by_xpath("//o 查看详情

2023爬虫学习笔记--获取cookies并访问个人书架

一、访问目标网站浏览器=webdriver.Chrome(r'./chromedriver')目标网址='https://www.XXXcom'浏览器.get(目标网址)二、点击登录按钮,弹出登录框登录框=浏览器.find_element("xpath",'//*[@id="header_login_user"... 查看详情