我们在制作规则的时候,可能会遇到总是在一二页循环提取数据,而不会转到第三页的情况,这其实是由于Xpath定位不好导致的,我们需要通过修改Xpath来解决这个翻页问题。
在出现这个问题的时候,我们可以直接在流程里面找到问题所在,下面的规则是直接按照新手入门的步骤做的。
一、手动执行规则翻页,确定问题
如上图,在点击循环的时候可以看到循环的是下一页按钮,我们可以直接在流程里选择点击翻页,这时八爪鱼下面的浏览器会直接跳到第二页
这个时候我们再点击流程图里面的循环,可以看到循环列表已经变成了上一页,这样系统再点击翻页的时候就会直接跳回第一页,提取第一页的数据,如此一直重复循环
二、复制翻页xpath到浏览器,确定问题
在循环里面的高级选项下方,可以看到下一页的XPath如下图所示:
我们把这个XPath复制到火狐里面去,发现在第一页是的确可以定位下一页的,但是在第二页就变了,可以看到这个XPath在火狐里面上一页和下一页都定位了,因为八爪鱼自动识别的都是当前页面的XPath,系统没有翻到第二页不知道第二页的情况,所以我们翻页的XPath只有在第一页里面是正常的:
三、观察源码,修改翻页xpath
再看一下火狐浏览器里面的源码,在第二页里面这个XPath对应的不正确,直接把上一页和下一页都对应到了,所以我们需要通过修改XPath来正确定位下一页:
手动在火狐里面直接写,可以看到这个网页的下一页特点的,我们直接可以用contains(text(),'XXX')函数//A[contains(text(),'下一页')],前面在XPath入门教程里面给大家介绍过这个函数的用法,这是是一个模糊文本函数,直接可以定位源码里面包含的文本。
四、将修改好的xpath复制到采集器
最后将这条XPath再复制到八爪鱼里面替换原来的循环翻页的xpath,替换后我们可以看到在第2页的时候可以正常定位到【下一页】按钮了。
编辑:FAN