ajax网页没有办法采集,Ajax网页采集方法(最新) - 八爪鱼采集器

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

一、什么是Ajax?

Ajax (Asynchronous JavaScript and XML) :异步JavaScript 和XML。

Ajax是一种在无需重新加载整个网页的情况下,更新部分网页的技术。 通过在后台与服务器进行少量数据交换,Ajax 可以使网页实现异步更新。传统的网页(不使用 Ajax)如果需要更新内容,必须重新加载整个网页页面。

二、如何判断网页是否使用了Ajax技术?

Ajax网页有2个明显特征:点击后【不重新加载整个网页】,且【网页局部出现新数据】。【不重新加载整个网页】是指:点击后观察网页的标签位置,不会转圈。

df1e85a14ca44c56b87d702efe21e540.png

不是Ajax点击:点击后整个页面重新加载(网页的标签位置开始转圈),转圈停止后有新的数据出现。

c595a0fc56c713cfc1ae220dc1dd44f2.png

八爪鱼是通过内置Chrome浏览器访问网页采集数据的。在八爪鱼中,判断网页是否使用了Ajax技术的方法,与普通浏览器一致。

是Ajax点击:点击后【不重新加载整个网页】(点击后浏览器网址栏无转圈状态,保持

a5ff0c6e77fb17814382fd48d654cf24.png 不变),且【网页局部出现新数据】。

01af1b544b1a7e06e74f83c9aef0022f.png

不是Ajax点击:点击后整个页面重新加载(点击后浏览器网址栏开始转圈

a694b369272cc62b2253777421b6f778.png,等待一段时间后转圈停止变成

a5ff0c6e77fb17814382fd48d654cf24.png),转圈停止后有新的数据出现。

69085bf006b8bcf33ad6b2842b29da4c.png

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

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

7f7bf95485bdba69a8e2c16a1b355275.png

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

6ba8dfe60336b677637395c212710e31.png

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

e7732dad90fab2dede8b9546139b788b.png

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

12ebda21e1fddba49d192e33bc614767.png

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

c472200130a55ce588d48231cc2fe766.png

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

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

1、八爪鱼自行判断网页是Ajax

判断是Ajax点击后,会自动勾选【Ajax加载数据】,并设置一定的【Ajax超时】时间。

如下图,百度地图的搜索按钮,使用了Ajax技术,八爪鱼自动勾选【Ajax加载数据】,并设置【Ajax超时】为3秒。

什么是【Ajax超时】?在点击后等待的时间,超过这个时间即进行下一个步骤。

【Ajax超时】设置为几秒合适?大于【点击后新数据加载完成所需的时间】即可,请注意观察网页本身点击后新数据加载完成所需的时间。

如果八爪鱼自动设置的【Ajax超时】过短,导致采不到数据,可相应的将【Ajax超时】延长,推荐5-10秒,具体根据网页情况进行调整。

2f54f3cc745f956515e9b31cc6f19e57.gif

如果是Ajax点击,但是在八爪鱼中没有设置【Ajax加载数据】会怎样?

对于【点击】【翻页】等会造成页面变化的步骤,八爪鱼是通过网页是否加载完成,来决定是否进行下一个步骤的:加载完成,进行下一个步骤;没有完成,等待完成再进行下一个步骤。

非Ajax网页,点击后有网页重新加载过程过程。当加载结束后,八爪鱼知道网页加载完成了,可以进行下一个步骤了。

Ajax网页,点击后网页不重新加载,无变化,八爪鱼无法判断网页是否加载完成,就默认在点击后等待120秒。但实际上Ajax点击后,局部数据几秒内就会出现,默认等待120秒会极大的影响采集速度。

2、是Ajax网页网页,但八爪鱼没有自动判断出来

需要我们手动为相应步骤进行Ajax设置:勾选【Ajax加载数据】,并设置一定的【Ajax超时】时间。

目前自动判断的很精准,很少出现此种情况,暂无实例演示。

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

有的网页不是Ajax点击,点击后重新加载,要采集的数据已经出现在页面上了,但网址栏还没有加载完成。八爪鱼会等待加载完成后才进行下一个步骤,就会拖慢采集速度。

针对这种情况,可以设置【Ajax超时】,强制停止网页加载。但需要注意,【Ajax超时】的时间,一定要略多于要采集的数据实际加载出来的时间。例如,要采集的数据实际5秒内加载出来,那将【Ajax超时】设为7秒,7秒后即使网址栏还在加载,八爪鱼也会强制停止其加载,进入下一个步骤,进而提高采集速度。

作者:西瓜

编辑:Aisling

处理Ajax分页加载是自动化采集京东商品评论数据时的一个常见难题。要解决这个问题,可以按照以下步骤操作: 参考资源链接:[京东商品评论采集实战:八爪鱼工具详解](https://wenku.csdn.net/doc/6ug09cnvfy?spm=1055.2569.3001.10343) 1. 打开八爪鱼采集器,并选择创建新的采集任务。 2. 在浏览器模式下,输入需要采集的京东商品评论页的URL,并等待页面加载完成。 3. 找到评论列表的节点,可以使用八爪鱼内置的节点查找工具,例如点击评论列表的某一行,工具会自动定位到相应的CSS选择器。 4. 为了实现Ajax分页,需要点击“下一步”按钮,观察页面URL的变化,确定翻页的参数,例如页码、时间戳等。 5. 在八爪鱼采集器中,选择设置循环点击“下一步”按钮的步骤,并设置循环条件,例如循环10次,以获取更多分页评论数据。 6. 开启Ajax加载数据功能,设置适当的延迟时间,以避免对服务器的过快请求导致采集失败。 7. 选中需要采集的评论字段,如用户名称、评论内容、评分等,并进行字段的筛选和定制。 8. 最后,选择保存任务,并运行以开始采集数据。 在这个过程中,关键在于准确地定位评论列表的节点,以及正确设置Ajax翻页的参数。通过八爪鱼采集器提供的强大功能,可以有效地抓取和处理分页加载的数据。针对Ajax分页的处理,八爪鱼采集器支持通过模拟点击操作来触发页面动态加载内容,从而实现数据的连续采集。掌握了这些技术,可以大大提高自动化采集的效率和准确性。如果希望深入了解八爪鱼采集器的高级功能以及如何解决更复杂的采集问题,可以查阅《京东商品评论采集实战:八爪鱼工具详解》。这份资料详细讲解了如何使用八爪鱼采集器进行京东商品评论数据的采集,包括 Ajax 分页处理的实战技巧。 参考资源链接:[京东商品评论采集实战:八爪鱼工具详解](https://wenku.csdn.net/doc/6ug09cnvfy?spm=1055.2569.3001.10343)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值