易顺网

当前位置:首页 > 采集相关 / 正文
后台-系统设置-扩展变量-手机广告位-内容页头部广告位
作者:admin

全球速卖通字符串文本是Orders (42)和Orders (356)选出大于100的xpath(图文)(图文)(图文)

admin 10个月前(2018-05-25) 采集相关


以搜索food为例

https://www.aliexpress.com/wholesale?catId=0&;SearchText=food


1.png

审查元素是:

<em title="Total Orders"> Orders (42)</em>

<em class="" title="Total Orders" data-spm-anchor-id="2114.search0104.3.i0.45493e043sPpLc"> Orders (356)</em>


以往我们接触文本纯数值,我们直接用[number(text())>100]就可以了,

但这里并不是纯数值,我们还不能直接用[number(text())>100],

我们需要把文字去除,把数字单独拿出来。

先介绍两个函数:

fn:substring-before(string1,string2)     

返回 string2 在 string1 中出现之前的子字符串。

例子:substring-before('12/10','/')

结果:'12'


fn:substring-after(string1,string2)     

返回 string2 在 string1 中出现之后的子字符串。

例子:substring-after('12/10','/')

结果:'10'

通过了解这个函数,我们可以取Orders (42)中,

左括号(后面,

和右括号)前面,

也就是我们想要括号里面的()数值取出来

取右括号)前面的xpath是substring-before(string(//em[@title='Total Orders']),')')


2.png


左括号(后面的xpath是substring-after(string1,'(')

代入后是:

substring-after(substring-before(string(//em[@title='Total Orders']),')'),'(')


3.png


数值取出,我们就可以用number判断了,

number(substring-after(substring-before(string(//em[@title='Total Orders']),')'),'('))>100


4.png


完整的xpath判断还需要改变一下,变成:

//em[@title='Total Orders'][number(substring-after(substring-before(text(),')'),'('))>100]


5.png


从图中可看出,小于100的未被选中。

是不是看懵逼了,没关系,附上懒人笔记,

[number(substring-before(substring-after(text(),'开始'),'结束'))>100],

Orders (42)要截取数字42比较大小,那么开始是(,

结束是),替换进去即可。

加上位置//em[@title='Total Orders']

完整xpath是//em[@title='Total Orders'][number(substring-before(substring-after(text(),'('),')'))>100]

标 签

试试用"←"或"→"方向键快速翻页把 (^o^)/

后台-系统设置-扩展变量-手机广告位-内容页头部广告位
搜索
热门图片
最近更新

Powered By 易顺网  赣ICP备16001451号