【8.0】Ajax网页采集方法
2019-11-14 17:32:34 阅读量: 16478
很多网页的点击使用了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