任务名:健客网第四层样例页面:https://www.jianke.com/product/7159.html

现在抓取该页面的各个套餐的价格,现在我测试的时候直接点击第二个套餐,再刷新页面后写了xpath://*[@class='specif jk_xztz']//*[@class='active_a'],点击测试,输出内容还是第一个套餐的数据,是什么问题,并且这个xpath定位到两个节点,我不明白为啥会这样,请教下技术人员,麻烦了

截图04.jpg
举报 使用道具
| 回复

共 9 个关于本帖的回复 最后回复于 2018-4-12 12:45

yangwenge 金牌会员 发表于 2018-4-11 17:56:09 | 显示全部楼层
这个网址套餐是没有单独的链接的,刷新页面之后会回到第一个套餐的
举报 使用道具
bsh331400 中级会员 发表于 2018-4-12 09:15:39 | 显示全部楼层
yangwenge 发表于 2018-4-11 17:56
这个网址套餐是没有单独的链接的,刷新页面之后会回到第一个套餐的

那要怎么写XPATH才能抓到第二个套餐的内容和对应价格,我在上层规则做了连续动作的
举报 使用道具
yangwenge 金牌会员 发表于 2018-4-12 10:07:48 | 显示全部楼层
bsh331400 发表于 2018-4-12 09:15
那要怎么写XPATH才能抓到第二个套餐的内容和对应价格,我在上层规则做了连续动作的 ...

这不是xpath的问题,是采集的思路不对,套餐里面根本没有单独的链接,所以是无法跳转到第二个套餐的,套餐需要使用连续动作点击,规格可以用层级采集链接。
举报 使用道具
bsh331400 中级会员 发表于 2018-4-12 10:14:06 | 显示全部楼层
yangwenge 发表于 2018-4-12 10:07
这不是xpath的问题,是采集的思路不对,套餐里面根本没有单独的链接,所以是无法跳转到第二个套餐的,套 ...

思路是您说的这样,规格用层级抓取
套餐是用连续动作啊,我在上层规则里写了连续动作点击每个套餐,在这一层不是要抓取对应的套餐内容和价格不,所以要写XPATH,点击到对应的套餐时,抓到相关内容和价格

举报 使用道具
bsh331400 中级会员 发表于 2018-4-12 10:19:38 | 显示全部楼层
yangwenge 发表于 2018-4-12 10:07
这不是xpath的问题,是采集的思路不对,套餐里面根本没有单独的链接,所以是无法跳转到第二个套餐的,套 ...

我 已经写了连续动作和层级抓取在上层规则里

截图00.jpg
举报 使用道具
bsh331400 中级会员 发表于 2018-4-12 10:56:12 | 显示全部楼层
yangwenge 发表于 2018-4-12 10:07
这不是xpath的问题,是采集的思路不对,套餐里面根本没有单独的链接,所以是无法跳转到第二个套餐的,套 ...

麻烦指导了思路哪里错了,我就是抓不到其他套餐的内容和价格,我感觉问题就是XPath这里,不能唯一定位到对应的套餐项
举报 使用道具
数据集 高级会员 发表于 2018-4-12 11:33:23 | 显示全部楼层
本帖最后由 数据集 于 2018-4-12 11:34 编辑
bsh331400 发表于 2018-4-12 10:56
麻烦指导了思路哪里错了,我就是抓不到其他套餐的内容和价格,我感觉问题就是XPath这里,不能唯一定位到 ...

这个网页结构很特别,不能唯一定位到对应的套餐项是因为有两个id值不同但内部结构完全一样的div区块节点

第一个套餐是存在第一个div节点内(id='onePackage'),而从第二个开始的套餐是存在第二个div节点里面(id='combinationPackage'),所以用一个xpath似乎做不到点击每一个套餐


1.png
举报 使用道具
数据集 高级会员 发表于 2018-4-12 11:41:39 | 显示全部楼层
可以这么做,需要加一层第四级规则,
第三层的连续动作只定位点击第二个套餐,用xpath:
  //*[@id='onePackage']/div[position()=1]/dl[position()=5]/dd/a[position()=2] 对应到第四层规则

新建第四层规则,定义连续动作 去点击从第二个套餐开始后的套餐 ,用xpath://*[@id='combinationPackage']//*[@class='specif jk_xztz']/a/following-sibling::a  对应到第五层规则

把原来的第四层规则重命名变成第五层规则


            
举报 使用道具
bsh331400 中级会员 发表于 2018-4-12 12:45:59 | 显示全部楼层
本帖最后由 bsh331400 于 2018-4-12 14:02 编辑
数据集 发表于 2018-4-12 11:41
可以这么做,需要加一层第四级规则,
第三层的连续动作只定位点击第二个套餐,用xpath:
  //*[@id='onePa ...

首先感谢你的回复
我按你的步骤,和修改抓取套餐的内容映射,可以了 ,再次谢谢

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

精彩推荐

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

热门用户

GMT+8, 2024-3-28 18:21