在使用huginn的时候,常用到xpath语法和Liquid语法,liquid语法教程还是很好找的,但是xpath function相对来说比较难找一点,在这里自己总结下
translate
translate(string, abc, XYZ)
number
这个直接number(.)就可以用,但是没办法转化逗号,如果要使用,则需要
number(translate(., ',', ''))
sum
前提要可以使用number
contains
参数:contains(attr,keywords)
使用方法:
我们要选择name属性中含有“word”字样的标签,表达式为:
*[contains(@name,“word”)] (ps:字符串使用单引号,双引号均可)
not()
使用方法:
如果选择不包含“word”字样的标签,表达式为*[not(contains(@name,“word”))]
substring-before()
参数:substring-before(str1,str2)
使用方法:
选取文章标题Python爬虫需要的技能:Xpath的使用中“:”前的部分,函数用于返回字符串str1中位于字符串str2之前的部分,表达式为:substring-before(“Python爬虫需要的技能:Xpath的使用”,“:Xpath的使用”)
返回的结果是 Python爬虫需要的技能
substring-after()
参数:substring-after(str1,str2)
使用方法: 选取文章标题Python爬虫需要的技能:Xpath的使用中“:(冒号)”后的部分,函数用于返回字符串str1中位于字符串str2之后的部分,表达式为:substring-after(“Python爬虫需要的技能:Xpath的使用”,“Python爬虫需要的技能:”)
返回的结果是 Xpath的使用
starts-with()
参数:starts-with(attr,keywords)
使用方法: 查找name属性中开始位置包含’user’关键字的标签,表达式为:starts-with(@name,“user”)
last()
//bookstore/book[last()] bookstore 的最后一个 book
//bookstore/book[last()-1] bookstore 的倒数第二个 book
position()
//bookstore/book[position() < 3] bookstore 最前面的两个book
ceiling(num)
大于它的最小整数
floor(num)
小于它的最大整数
round(num)
四舍五入
字符串相关
函数 功能
string(arg) 转字符串,参数可以是数字、逻辑值或节点集
concat(string, string, …) 拼接
substring(string, start, [len]) 切片
string-length(string) 字符串长度
normalize-space(string) 删除开头结尾的空白,中间空白只保留一个
translate(string1, string2, string3) 以 string2 对应的 string3 序列,对 string1 进行替换
contains(string1, string2) 包含
starts-with(string1, string2) 以xx开头
substring-before(string1, string2) 提取xx之前的字符串
substring-after(string1, string2) 提取xx之后的字符串
substring
substring(string, start)
substring(string, start, length)
string-length
string-length( [string] )
local-name(.)/name(.)
返回当前节点名称
namespace-uri( [node-set] )
返回链接
或运算
//book/title | //book/price book 的所有 title 和 price