本帖最后由 快乐少年郎 于 2017-4-5 15:47 编辑

只能用绝对定位、且需样例复制的内容,高级设置中的抓取内容表达式如何写呢?
规则名称:农药-试验单位-详情页
样例网页
该页面有三部分内容,因为相同的DOM节点太多,所以用的是绝对定位来映射,而且第二、第三部分需要做样例复制,目前卡在不知道如何写 这个通用的抓取内容表达式。


举报 使用道具
| 回复

共 7 个关于本帖的回复 最后回复于 2017-5-8 11:15

沙发
Fuller 管理员 发表于 2017-4-5 15:58:37 | 只看该作者
写自定义xpath的通用过程是:
1,做好映射以后,点击“测试”按钮,看到输出结果
2,在输出窗口中找到“数据规则”页签,找到这个抓取内容
3,把这个抓取内容的xpath拷出来,基于这个xpath来写。

也就是说:不要变更这个xpath的起始dom节点
1,如果开头是*//*这样的,表示前面可以有很多层,这种比较灵活,或者保持*//,或者改成 .//
2,如果开头是某个html标签,比如,div,那么就要注意这个div到底是网页上哪一个,自己写的xpath要保持这个起点

这个规则我加载一下看看
举报 使用道具
板凳
Fuller 管理员 发表于 2017-4-5 16:34:50 | 只看该作者
你使用了好多自定义xpath,似乎都是用绝对定位的,起点是/html,这种不允许,要基于自动生成的规则做修改,要用相对起点。

这个网页上有3个表,每个表的@class都一样,定位标志也无法用上,只能使用绝对定位。如果用绝对定位的话,满足不了你的要求?我的意思是说:为什么要自定义xpath?
举报 使用道具
地板
快乐少年郎 初级会员 发表于 2017-4-5 16:44:04 | 只看该作者
Fuller 发表于 2017-4-5 16:34
你使用了好多自定义xpath,似乎都是用绝对定位的,起点是/html,这种不允许,要基于自动生成的规则做修改, ...

因为我发现自定义xpath后,就可以抓取到相应的内容了,否则就不行,例如:

举报 使用道具
5#
Fuller 管理员 发表于 2017-4-5 17:10:11 | 只看该作者
快乐少年郎 发表于 2017-4-5 16:44
因为我发现自定义xpath后,就可以抓取到相应的内容了,否则就不行,例如:

...

抓到相同的内容是因为他们的class值都一样,点击“定位”按钮,选择“绝对定位”就好了,不过,如果你这个截图是加载规则以后得到的,那么就要重新做一次内容映射了,因为,如果没有选择绝对定位就存了规则,那么规则加载的时候,也会把所有抓取内容定位到第一个内容
举报 使用道具
6#
快乐少年郎 初级会员 发表于 2017-4-5 17:42:31 | 只看该作者
本帖最后由 快乐少年郎 于 2017-4-5 17:44 编辑
Fuller 发表于 2017-4-5 17:10
抓到相同的内容是因为他们的class值都一样,点击“定位”按钮,选择“绝对定位”就好了,不过,如果你这 ...

明白了, 没联想到右边“定位”按钮上去。
举报 使用道具
7#
suddenly951218 新手上路 发表于 2017-5-8 11:05:25 | 只看该作者
用关键字定位怎么搞呀?大神求教!
举报 使用道具
8#
Fuller 管理员 发表于 2017-5-8 11:15:01 | 只看该作者
suddenly951218 发表于 2017-5-8 11:05
用关键字定位怎么搞呀?大神求教!

你的意思是网页上有个字符串“访客数”,你想用这个作为定位标志?这个标志应该是在一个text中的,所以,自定义xpath应该含有这样的部分
  1. contains(text(), '访客数')
复制代码


这个一般放在判断条件中


举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

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

热门用户

GMT+8, 2024-5-18 21:31