比如一些日期,空的日期和正常日期是兄弟节点,但是只需要正常日期和正常日期携带的链接。两类节点都没有id和class,不过可以用xpath写出正常日期的所有节点,在这里正常日期节点包涵了一个a节点,空的日期里面少了这个a节点。
符合特定条件的兄弟节点作为样例.png
举报 使用道具
| 回复

共 6 个关于本帖的回复 最后回复于 2016-8-13 21:16

tanyaohua123 中级会员 发表于 2016-8-12 17:12:05 | 显示全部楼层
或者说可不可以自己用xpath写出任意符合条件的节点来充当样例?
举报 使用道具
Fuller 管理员 发表于 2016-8-12 22:26:43 | 显示全部楼层
xpath的函数不多,不过也基本够用,只是没有正则表达式。

上面的需求可以用上not()函数,而contains()函数是用来判断是否含有某个值,还有count()数数。

可以把多个条件组合在一起,用and, or把多个条件连起来
举报 使用道具
tanyaohua123 中级会员 发表于 2016-8-13 10:15:53 | 显示全部楼层
Fuller 发表于 2016-8-12 22:26
xpath的函数不多,不过也基本够用,只是没有正则表达式。

上面的需求可以用上not()函数,而contains()函数 ...

符合条件的样例节点可以写出来,但是不知道怎么写到“自定义xpath”里面去,是选兼用定位还是专有定位?自己试了一些好像都不对。
写出来怎么用.png
举报 使用道具
Fuller 管理员 发表于 2016-8-13 11:21:07 | 显示全部楼层
tanyaohua123 发表于 2016-8-13 10:15
符合条件的样例节点可以写出来,但是不知道怎么写到“自定义xpath”里面去,是选兼用定位还是专有定位? ...

兼做定位和专用定位的区别在这里:http://www.gooseeker.com/doc/thread-1767-1-1.html

举个例子:如果有些网页上有这个内容,另一些网页上没有这个内容,你想抓这个内容,但是没有找到合适的样本页面。通常找到的都是不含这个内容。你还想给他做个xpath定位。那么就用专用定位。
1)定位标志表达式指向一个网页上总是有的节点
2)抓取内容表达式可以比较自由地构造,这个例子就指向一个偶尔会出现的节点,其实在样本页面上没有

更多自定义xpath的材料在这里:http://www.gooseeker.com/doc/thread-701-1-1.html
举报 使用道具
tanyaohua123 中级会员 发表于 2016-8-13 18:52:37 | 显示全部楼层
Fuller 发表于 2016-8-13 11:21
兼做定位和专用定位的区别在这里:http://www.gooseeker.com/doc/thread-1767-1-1.html

举个例子:如果 ...

我好像知道怎么做了。我原来想通过选择符合条件样例来抓取自己想要的,但是gooseeker的做法其实是,选择所有的样例,然后通过关键内容的设置,不抓取不符合特定条件的样例,和选择特定的样例其实达到了一样的效果。原来老是失败,是因为自己写的抓取具体内容的xpath写的是完整的xpath,所以抓取结果里所有的样例里都是第一个符合条件的样例的内容,其实应该以样例为起点写xpath,比如内容表达式//*[@class='cal_list']/li[count(.//a)>0]/a/text(),li是样例,要改成./a/text(),去掉样例li及更上级的路径,这样就不会所有样例都抓第一个符合的内容了。
举报 使用道具
Fuller 管理员 发表于 2016-8-13 21:16:32 | 显示全部楼层
tanyaohua123 发表于 2016-8-13 18:52
我好像知道怎么做了。我原来想通过选择符合条件样例来抓取自己想要的,但是gooseeker的做法其实是,选择 ...

是的,目前很多用户就是关于xpath的起点问题容易搞错,我们正在调整算法,想自动判断出用户输入的xpath的起点,根据需要自动修改
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

  • Gephi社会网络分析-马蜂窝游记文本分词并同
  • Gephi社会网络分析-基于马蜂窝游记文本以词
  • 知乎话题文本根据词语间距筛选后生成共词矩
  • 马蜂窝游记文本分词后以词语间距为筛选条件
  • 学习使用apriori算法挖掘关联关系

热门用户

GMT+8, 2024-3-29 16:52