11#
xandy 论坛元老 发表于 2017-2-15 11:59:52 | 只看该作者
saly123 发表于 2017-2-15 11:36
之前问过,不需要连续动作,你将定位改了之后就抓不到展开后的回复内容了,但是如果不使用你的那个解决办 ...


没错,我发现就算不点击“see more”,也是可以抓到所有回复内容,因为网页html已经将所有的回复加载上去了。
通过自定义xpath来解决,自定义xpath也是能够精准定位采集内容的。
解决方案:
先在xpath搜索框搜索下面这个xpath:
  1. //*[contains(@class,'commentLayout-reply commentLayout ng-scope')]
复制代码
搜索数为12,这就是这个网页中的12个所有回复所在框,然后将第一个DIV样例映射给“回复”的第一个,第二个DIV样例映射给“回复”的第二个。

再分别对回复人和回复内容自定义xpath,自定义xpath在高级设置里面进行设置。
回复人自定义xpath为:
  1. .//*[@class='commentLayout-account ng-binding ng-scope']
复制代码
回复内容自定义xpath为:
  1. .//*[@class='commentLayout-text ng-binding']
复制代码

测试结果所有回复都能抓了,且不重复


举报 使用道具
12#
xandy 论坛元老 发表于 2017-2-15 12:03:18 | 只看该作者
saly123 发表于 2017-2-15 11:36
之前问过,不需要连续动作,你将定位改了之后就抓不到展开后的回复内容了,但是如果不使用你的那个解决办 ...

自定义xpath教程参看:《自定义xpath问题锦集
举报 使用道具
13#
saly123 中级会员 发表于 2017-2-15 12:16:42 | 只看该作者
本帖最后由 saly123 于 2017-2-15 12:33 编辑
xandy 发表于 2017-2-15 11:59
没错,我发现就算不点击“see more”,也是可以抓到所有回复内容,因为网页html已经将所有的回复加载上 ...

但是这样的话就又有问题了,只有一个回复的评论中的回复没有抓下来。只能抓取有多个回复的评论。该怎么弄?
举报 使用道具
14#
HJLing 版主 发表于 2017-2-15 15:59:10 | 只看该作者
saly123 发表于 2017-2-15 12:16
但是这样的话就又有问题了,只有一个回复的评论中的回复没有抓下来。只能抓取有多个回复的评论。该怎么弄 ...

回复人的自定义xpath写下面这个
.//*[@class='commentLayout-main']//*[@class='commentLayout-text ng-binding']/text()

点击测试后 点到数据规则
找到“回复”修改程序生成的路径

[contains(@class,'commentLayout-reply commentLayout ng-scope')]



改好后点击右边的测试单箱 可以看到采集结果正常了


需要注意的是 之前要存一次规则
再做这个修改 并且修改完成后只能点击右边的保存修改
然后开始跑数据


举报 使用道具
15#
xandy 论坛元老 发表于 2017-2-15 16:18:40 | 只看该作者
Good!
举报 使用道具
16#
saly123 中级会员 发表于 2017-2-15 16:43:01 | 只看该作者
HJLing 发表于 2017-2-15 15:59
回复人的自定义xpath写下面这个
.//*[@class='commentLayout-main']//*[@class='commentLayout-text ng-b ...

还有一个问题:你这样改了之后,有多个回复的评论中回复的时间就抓不下来了,只抓下来了人名,可以改Xpath使时间和人名可以一起抓下来吗?
举报 使用道具
17#
gz51837844 管理员 发表于 2017-2-15 16:58:42 | 只看该作者
你可以根据自己的需求, 按上面的方法去调整规则
举报 使用道具
18#
saly123 中级会员 发表于 2017-2-15 17:00:42 | 只看该作者
gz51837844 发表于 2017-2-15 16:58
你可以根据自己的需求, 按上面的方法去调整规则

已经调试了,但是我现在除了抓人名之外,还想要抓时间,解决方案中的回复人的Xpath应该写什么才可以不仅仅抓人名,还可以抓时间。这个是我的问题。
举报 使用道具
19#
HJLing 版主 发表于 2017-2-15 17:14:29 | 只看该作者
本帖最后由 HJLing 于 2017-2-15 17:17 编辑
saly123 发表于 2017-2-15 17:00
已经调试了,但是我现在除了抓人名之外,还想要抓时间,解决方案中的回复人的Xpath应该写什么才可以不仅 ...

再加个字段就好了

举报 使用道具
20#
saly123 中级会员 发表于 2017-2-15 17:20:30 | 只看该作者
HJLing 发表于 2017-2-15 17:14
再加个字段就好了

加一个字段,那加的字段也要自定义xpath吗?该怎么定义?不可以修改回复人的xpath让它们放在一起吗?

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

精彩推荐

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

热门用户

GMT+8, 2024-5-9 18:28