14 15253

连续动作不断循环

756292075 于 2017-1-11 11:24 发表 [复制链接]
主题名:“宝贝-详情页”
链接:https://detail.tmall.com/item.ht ... skuId=3424943182744
图片: 1.png
连续动作设置:连续动作为先选颜色,再选尺码,颜色取消勾选"必做",颜色和尺码遇到没库存的都不点
问题:连续动作开始,先点黑色款,然后按顺序点35-39码,但点到39码时,红色款刚好没库存,导致死循环,不断重复点35-39。请问怎么设置成,点到最后一个时再点一次,取消勾选?
1.png
举报 使用道具
| 回复

共 14 个关于本帖的回复 最后回复于 2017-1-12 20:05

xandy 论坛元老 发表于 2017-1-11 11:44:55 | 显示全部楼层
你可以在连续动作中再定义第3个点击动作,这个点击动作的作用就是点击一下尺码的最后一个,所以xpath可以这样写:
  1. //*[@class='tb-prop tm-sale-prop tm-clear ']//li[not(@class='tb-out-of-stock')][last()]
复制代码


举报 使用道具
756292075 中级会员 发表于 2017-1-11 14:11:07 | 显示全部楼层
xandy 发表于 2017-1-11 11:44
你可以在连续动作中再定义第3个点击动作,这个点击动作的作用就是点击一下尺码的最后一个,所以xpath可以这 ...

加了第三步,无论是否勾选必做,在实际爬取过程中,选定颜色后,每点一次尺码就会再点一次最后的码数,而点到最后的码数,却不会再点一次最后的码数?还是不能取消勾选最后一个尺码?
举报 使用道具
xandy 论坛元老 发表于 2017-1-11 14:39:25 | 显示全部楼层
756292075 发表于 2017-1-11 14:11
加了第三步,无论是否勾选必做,在实际爬取过程中,选定颜色后,每点一次尺码就会再点一次最后的码数,而 ...

你把选尺码和颜色的动作调换下吧,先选尺码再选颜色
举报 使用道具
756292075 中级会员 发表于 2017-1-11 14:43:55 | 显示全部楼层
xandy 发表于 2017-1-11 14:39
你把选尺码和颜色的动作调换下吧,先选尺码再选颜色

先选尺码再选颜色也有可能有问题的吧~假设有红黑两个颜色,先选35,再选红黑,如果36黑是没库存,36红有库存,点到35黑,36是点不到的,然后就会直接跳到37,36红等于直接跳过不抓取?
举报 使用道具
756292075 中级会员 发表于 2017-1-11 15:01:01 | 显示全部楼层
xandy 发表于 2017-1-11 14:39
你把选尺码和颜色的动作调换下吧,先选尺码再选颜色

2.png

勾选了尺码或者颜色,li下面的a会多一个aria-label的属性,用@aria-lable="34,已选择"可以筛出来,但实际上不知道最后一个可选尺码是多少,怎么用通配符?或者说怎么选择最后一个尺码且带有这个aria-label属性?
举报 使用道具
xandy 论坛元老 发表于 2017-1-11 15:16:19 | 显示全部楼层
756292075 发表于 2017-1-11 15:01
勾选了尺码或者颜色,li下面的a会多一个aria-label的属性,用@aria-lable="34,已选择"可以筛出来,但 ...

就算找到最后一个尺码且带有这个aria-label属性好像也不能解决问题,你的思路是?
举报 使用道具
756292075 中级会员 发表于 2017-1-11 15:41:19 | 显示全部楼层
xandy 发表于 2017-1-11 15:16
就算找到最后一个尺码且带有这个aria-label属性好像也不能解决问题,你的思路是?
...

最后加[last]是会每次都会点一下最后一个尺码,但如果last加上aria-label的话,就能保证只有最后一个尺码勾选了才会再点一次,没勾选或者勾选的不是最后一个可选尺码,就不会运行步骤3。

举报 使用道具
xandy 论坛元老 发表于 2017-1-11 15:57:39 | 显示全部楼层
本帖最后由 xandy 于 2017-1-11 16:36 编辑
756292075 发表于 2017-1-11 15:41
最后加[last]是会每次都会点一下最后一个尺码,但如果last加上aria-label的话,就能保证只有最后一个尺码 ...

如果是这样的思路:
连续动作步骤1,点击码数,xpath这样写
  1. //*[@class='tb-prop tm-sale-prop tm-clear ']//li
复制代码
连续动作步骤2,点击颜色,xpath这样写
  1. //*[@class='tm-clear J_TSaleProp tb-img     ']//li
复制代码
连续动作步骤3,只点击已选择的颜色,xpath这样写
  1. //*[@class='tm-clear J_TSaleProp tb-img     ']//li[contains(./a/@aria-label,'已选择')]
复制代码
确实可以实现全部尺码和颜色都轮点一次,但是又产生了新的问题,就是导致最后采的价格是未点击颜色后的价格了。

举报 使用道具
xandy 论坛元老 发表于 2017-1-11 16:42:50 | 显示全部楼层
xandy 发表于 2017-1-11 15:57
如果是这样的思路:
连续动作步骤1,点击码数,xpath这样写
连续动作步骤2,点击颜色,xpath这样写

一个解决方案就是:
点击不同的尺码后,网址上带的参数ID后面的值是发生变化的,所以可以通过采集这个ID值来构造下级线索
17-01-11 天猫点击尺码问题.jpg
然后下级线索所对应的采集规则就是连续动作所在的规则,这个规则只需要点击不同的颜色(一个点击动作),连续动作的目标主题名就是具体的采集规则了
举报 使用道具
您需要登录后才可以回帖 登录 | 立即注册

精彩推荐

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

热门用户

GMT+8, 2024-3-29 09:25