很多网页的点击使用了Ajax加载技术,针对这种网页,我们需在八爪鱼中进行相关设置。

 

一、什么是Ajax?

 

 Ajax是延时加载、异步更新的一种脚本技术,可以在不重新加载整个网页的情况下,对网页的某部分进行更新。

 

 

二、如何判断某个点击是否使用了Ajax技术?

 

1、在普通浏览器中判断

 

Ajax点击有2个明显特征:点击后【不重新加载整个网页】;点击后【网页的局部区域有新的数据出现】。

 

是Ajax点击:点击后【不重新加载整个网页】(点击后浏览器网址栏无转圈状态),很快【网页的局部区域有新的数据出现】。

 

 

不是Ajax点击:点击后【重新加载整个网页】(点击后浏览器网址栏开始转圈圈,等待一段时间后转圈停止),转圈停止后有新的数据出现。

 

 

2、在八爪鱼中判断

 

八爪鱼中内置Chrome浏览器,Ajax点击表现特征与以上截图一致。

 

是Ajax点击:点击后【不重新加载整个网页】(点击后浏览器网址栏无转圈状态,保持   不变),很快【网页的局部区域有新的数据出现】。

 

 

不是Ajax点击:点击后【重新加载整个网页】(点击后浏览器网址栏开始转圈圈   ,等待一段时间后转圈停止变成   ),转圈停止后有新的数据出现。

 

 

练习:判断以下网页的点击,是否是Ajax点击?(先自行判断,第5个后有答案):

 

① 点击百度地图【搜索】按钮  https://map.baidu.com

 

  

 

 

② 点击京东【商品评论】按钮  https://item.jd.com/100004069493.html 

 

 

 

③ 点击京东商品评论【下一页】按钮  https://item.jd.com/100004069493.html

 

 

 

④ 点击搜狗微信【文章链接】 https://weixin.sogou.com

 

 

⑤ 点击【百度一下】按钮  https://www.baidu.com 

 

 

 

答案:1是;2是;3是;4不是;5是。

 

 

三、是Ajax点击,在八爪鱼中如何设置?

 

1、八爪鱼会自行判断是否是Ajax点击,判断是Ajax点击后,会自动勾选【Ajax加载数据】,并设置一定的【Ajax超时】时间【Ajax超时】:在点击后等待的时间,>【局部区域】新数据出现的时间即可。

 

如果八爪鱼自动设置的【Ajax超时】过短,导致采不到数据,可相应的将【Ajax超时】延长,推荐5-10秒。

 

 

特别说明:

a. 如果是Ajax点击,但是在八爪鱼中没有设置【Ajax加载数据】会怎样呢?非Ajax点击,点击后有【网址栏转圈,转圈结束即加载完成】的过程,八爪鱼知道网页加载完成了,可以进行下一个步骤了。但是对于Ajax点击,没有网址栏转圈过程,八爪鱼不知道网页是否加载完成,默认在点击后等待120秒。但实际上Ajax点击后,要采集的数据几秒内就会出现,默认等待120秒会极大的影响采集速度。

 

2、网页复杂多样,有时候,八爪鱼会判断失误,需要我们手动修正。以下是常见的判断失误情况。

 

① 是Ajax点击,但八爪鱼没有勾选【Ajax加载数据】。

 

需我们手动勾选【Ajax加载数据】,并设置一定的【Ajax超时】时间。【Ajax超时】:在点击后等待的时间,>【局部区域】新数据出现的时间即可,一般推荐5-10秒。

  

 

四、不是Ajax点击,可以设置【Ajax超时】吗?

 

回顾一下,【Ajax超时】的作用是,在点击后等待相应时间,再进入下一步骤。有的不是Ajax点击,点击后要采集的数据已经出现,但八爪鱼网址栏还在转圈,一直处于加载状态,这样会拖慢采集速度。

 

针对这种网页,可以设置【Ajax超时】。例如,将Ajax超时】设为7秒,7秒内数据已经出现了,八爪鱼就在超过7秒后,强制停止网页加载,进入下一步骤,提高采集效率。

 

作者:西瓜

编辑:Aisling