专栏首页州的先生曾经豪言“指哪爬哪”,如今被一个JS狠狠教做人

曾经豪言“指哪爬哪”,如今被一个JS狠狠教做人

很久没有写有关爬虫相关的内容了,今天给大家分享一下最近工作中遇到的一个与JavaScript相关的数据采集案例。

在某平台的后台,有这样一个页面需要进行采集:

如图所示,图片中分为了上下两个部分,一个是概况类的数据,一个是明细列表类的数据。

根据以往的经验,直接F12打开浏览器的网页调试控制台,筛选到其数据接口的请求地址:

轻车熟路地从数据接口返回的json数据中提取各个数据值。

本以为是一个轻松的事情,没想到最后一个成交转化率的数据值总是找不到,翻遍了所有的请求接口都找不到。

怎么办?

本着数据不会无缘无故产生的原则,逐步进行分析。

在HTML页面发现入口

首先从响应的HTML页面开始分析,数据肯定不会是直接从后端渲染到HTML页面上的。在HTML上只是为了寻找一些调用和渲染数据的蛛丝马迹。

果然发现了:

这3个被{{}}模板渲染标签包裹的变量名显然就是待采集数据项中的3个,前2个变量名可以一一对应到具体的数据上,那么最后一个也就是找不到数据值的数据变量名了。

接着继续在网页控制台进行搜索,发现有两个请求存在这个变量名:

其中一个是上述的HTML响应,另一个则是一个JS文件。我们重点来关注这个JS。

在JS中发现踪迹

显然,JS是被压缩过的,为了方便分析,我们对其进行格式化处理:

复制出来,搜索变量名附近的代码:

原来这个数值是通过计算的出来的,难怪找不到具体的数据值。

在session存储中找到核心值

来看这个计算公式,一个数据已有的变量值,另一个数据则是从ssesionStorage中取出的。咱们继续掉头回到浏览器网页调试栏:

ssesionStorage存储中找到了对应的值,进而发现这个值存在于前一个数据接口的响应中,这样,这一个永远找不到的数据就这样轻松解决了。

本文分享自微信公众号 - 州的先生(zmister2016),作者:州的先生

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2020-07-28

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 给Python初学者的6个实用建议

    编程作为一项技能,需要长期的训练以达到熟练的地步。每天写一点代码,保持对代码、语法和逻辑的敏感度,有利于初学者巩固新接触的知识和概念。

    州的先生
  • app逆向入门分析——破解某APP登陆请求参数

    前段时间做爬虫遇到一个app,里面的数据需要登录之后才能拿到,而且登录不能用密码,只能通过验证码登录。 这不是明摆着欺负人么,按赵四哥那句话来说就是:

    州的先生
  • 破解点评网字体反爬,深入挖掘系统背后的原理

    从这里可以看到,网页上显示的文字和源码中显示的文字有些出入,并不是一一对应,那继续查看sources中的代码。

    州的先生
  • 什么是数据敏感度?怎么培养数据敏感度?

    提这个问题是因为她的主管自诩数据敏感度很高,做为下属的她想知道到底什么是数据敏感度,怎么培养数据敏感度。

    木东居士
  • 高考志愿季|如何从选专业开始 科学规划走上大数据之路

    大数据文摘
  • 解读 | “数据为王”是真的吗?谷歌轻抚着100倍的数据量点了点头

    AI 科技评论按:过去十年里,研究人员在计算视觉领域取得了巨大的成功,而这其中,深度学习模型在机器感知任务中的应用功不可没。此外,2012 年以来,由于深度学习...

    AI科技评论
  • 2020国家网安周:建立开放协作的数据流动规则刻不容缓

    当今时代,随着互联网、人工智能、云计算等新一代信息技术的高速发展,数据流动对全球经济增长的贡献也在猛增。麦肯锡全球研究院发布的《数据全球化:新时代的全球性流动》...

    腾讯安全
  • 「自然语言处理(NLP)」【爱丁堡大学】基于实体模型的数据文本生成!!

    本文主要参考:https://zhuanlan.zhihu.com/p/96020318

    ShuYini
  • LeetCode 100 及 101题

    输入: 1 1 / \ 2 2...

    Carlos Ouyang
  • ITDSD- 4.分布式软件的定量分析

    这是关于分布式架构新手入门的第五篇文章。这一篇文章主要介绍通过计算分布式系统中的单次请求成功率,以及重复请求的稳定率获得系统的稳定性估值。依据软件结构评估性能及...

    sun.shuo

扫码关注云+社区

领取腾讯云代金券