XPath备忘_html/css_WEB-ITnose
程序员文章站
2022-05-04 22:49:18
...
最近写了几个scrapy的爬虫程序,里面用到了xpath,写个日志记录一下用法。
XPath是什么
XPath是一种用于xml、html等结构化文档中寻址定位特定元素等描述性语言
XPath主要功能
下面以如下测试文档为例进行说明:
One Two Three
精确路径寻址
指通过精确制定的路径取得元素。例如
和unix文件系统概念一致,有如下几种定位方式:
- 绝对路径, /html/body/contents/para能查找出文档中的三个para元素
- 相对路径,在 /html/body路径下, /contents/para同样也能查找出这三个para元素
- 父级路径, .表示当前路径, ..表示当前路径的父级路径
模糊路径寻址
不需要指定绝对路径或根据当前路径确定的相对路径,只需要指定某个子结构,就能查找出所有符合这个子结构的元素。如
- //contents/para在任何路径下,都能查找到 整个文档下的这三个para元素
- .//contents/para能在当前路径下,查找到子节点中任何符合 contents/para结构的元素
节点属性匹配
格式:元素[@属性="xxx"]
- a[@class="normal-link"]能查找出两个有带normal-link class的a链
- para[a/@class="ex-link"]能查找出一级子元素中有带ex-link class的a链的para元素,这里就是
Three
属性选择
查找某个元素中的特定属性值,如: a[@class="ex-link"]/@href能读取第三个a链的href值
内置函数
- node(),返回任意种类的节点。比如和内置关键字 child组合成 /html/body/contents/child::node(),可以选择所有的para节点
- text(),返回节点中包含的文本。 /html/body/contents/para/a[@class="ex-link"]/text()返回Three。特别的,和模糊路径寻址配合,如 /html/body/contents//text(),能返回contents下的 One Two Three字符串
推荐阅读
-
html中播放swf文件,怎么显示下面的开关面板的部分?_html/css_WEB-ITnose
-
css设置背景图片和背景颜色都不显示_html/css_WEB-ITnose
-
推荐:Web开发者的六个代码调试平台_html/css_WEB-ITnose
-
跨平台移动开发 Xuijs超轻量级的框架+Emile CSS动画_html/css_WEB-ITnose
-
求个html帮助文档的下载地址。。。。多谢_html/css_WEB-ITnose
-
html表单验证证件类型和证件号码匹配,并验证问题_html/css_WEB-ITnose
-
ecshop调用文章显示上一篇下一篇_html/css_WEB-ITnose
-
css?reset 以及哪些元素有默认margin?padding值_html/css_WEB-ITnose
-
DIV+CSS布局问题_html/css_WEB-ITnose
-
超好玩!10款神奇的字符图案 & 词汇云生成工具_html/css_WEB-ITnose