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

?

一、什么是Ajax?

?

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

?

?

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

?

1、在普通浏览器中判断

?

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

?

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

?

?

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

?

?

2、在八爪鱼中判断

?

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

?

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

?

?

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

?

?

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

?

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

?

??

?

?

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

?

?

?

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

?

?

?

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

?

?

⑤ 点击【百度一下】按钮? http://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

?