关键词:
来自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"... 查看详情