首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

爬虫遇上数据异步加载,试试这两种办法!

现在很多项目都是前后端分离的,这会使得数据异步加载问题更加突出。出现这类问题时不必慌张,总体来说,有两种解决办法。和神龙IP一起来看看吧~

爬虫遇上数据异步加载,试试这两种办法!

一、内置一个浏览器内核

内置浏览器就是在抓取的程序中,启动一个浏览器内核,使我们获取到 js 渲染后的页面,这样我们就跟采集静态页面一样了。

这种工具常用的有以下三种:Selenium、HtmlUnit、PhantomJs

这些工具都能帮助我们解决数据异步加载的问题,但是他们都存在缺陷,那就是效率不高而且不稳定。

二、反向解析法

什么是反向解析法呢?我们 js 渲染页面的数据是通过 Ajax 的方式从后端获取的,我们只需要找到对应的 Ajax 请求连接就 OK,这样就可获取到我们需要的数据。反向解析法的好处,一是获取的数据都是 json 格式的,解析起来比较方便;二是是相对页面来说,接口的变化概率更小。

同样,它有两个不足之处,在 Ajax 时你需要有耐心有技巧,因为你需要在一大堆请求中找到你想要的;而面对 JavaScript 渲染的页面,反向解析法只能束手无策。

以上就是异步数据加载的两种解决办法,大家要根据具体情况进行选择。对于一些使用 JavaScript 片段渲染的页面,内置浏览器更加靠谱。对于其他情况来说使用反向解析法更好,因为它的性能和稳定是都要比内置浏览器内核靠谱。

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20210107A068XF00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券