一、概述

最近学院组织安排大面积实习工作,今天刚刚发布了喜马拉雅FM实习生招聘的面试通知。通知要求:公司采用开放式题目的方式进行筛选,申请的同学须完成如下题目

写程序输出喜马拉雅FM上与“卓老板”相关(相关指用“卓老板”作关键词可以在喜马拉雅上搜索到)的所有专辑的信息,按总播放量倒序排列,每行是一个字符串,形如{"title" : "该专辑的名称", "anchorman" : "该专辑所属的账号名称", "info" : "该专辑的简介", "totalPlayCount" : 该专辑的总播放量}。可以只输出信息,不用下载专辑中的音频mp3文件。可以用C/C++、JavaScript、Java、Python、Go等语言编写。

二、分析

2.1 题目分析

数据要求就是JSON数据,很容易想到:要么去写爬虫,从喜马拉雅的官网页面上爬取数据;要么在app上进行抓包,分析接口。

2.2 说干就干

首先,我去了喜马拉雅的官网进行了操作。发现,在第一个页面上可以搜索,也能查看到一些数据,但是数据并没有按照播放量排序以及数据中无播放量这一数据。同时,对整个页面访问的过程进行抓包分析,发现好像并没有类似Json数据的传输。因此,解决方案只有进入每个专辑页面的详情页去获取播放量,再把这些数据汇总。

使用到的技术:用Python语言解析html页面;用Java语言可以使用Jsoup框架解析html页面。

2.3 使出杀手锏

android端抓包
根据以往写app的经验,如果项目有app端,则服务器通常要向app端暴露一些数据交互接口,以保证app端的正常使用。对于某些安全级别较高的或者对交互数据有隐私保护需求的公司,通常会对交互的数据进行编码、加密等处理,以增加信息的安全性。
抱着试一试的心态,我下载了喜马拉雅app,简单试用了这款app后,确实找到了查找专辑(按播放量,相关度、最新上传可选排序)的操作。通过对app抓包分析,发现整个交互的Json没有进行特殊的编码或者加密,甚至没有登陆验证。

2.4 编码前的分析

经过前面三个过程,明确了解决问题的方向。那就开始写代码吧。
之前使用到Json数据的场合大多都是使用java语言写Android端程序,此次为了锻炼、学习一下(之前也没有投该公司),决定使用Python语言请求并解析Json数据。

三、编码

python解析jsonhttp://www.cnblogs.com/neillee/p/6207996.html

转载于:https://www.cnblogs.com/neillee/p/6208003.html

喜马拉雅FM抓包之旅相关推荐

  1. 软件测试 | 手把手教你如何使用 Fiddler 抓包工具(电脑+手机端)

    嘿.大家好,我是4U: 做过 APP 测试的同学都会接触抓包工具,通过抓包工具可以获取到客户端与服务端接口的交互数据,在实际测试APP的过程中,我们往往会发现服务端返回 的参数字段错误.数据统计错误等 ...

  2. Android逆向之旅---爆破一款资讯类应用「最右」防抓包策略原理分析

    一.逆向分析 首先感谢王同学提供的样本,因为王同学那天找到我咨询我说有一个应用Fiddler抓包失败,其实对于这类问题,我一般都会这么回答:第一你是否安装Fiddler证书了,他说他安装了.第二你是否 ...

  3. Android逆向之旅---爆破资讯类应用「最右」的防抓包策略

    一.逆向分析 首先感谢王同学提供的样本,因为王同学那天找到我咨询我说有一个应用Fiddler抓包失败,其实对于这类问题,我一般都会这么回答:第一你是否安装Fiddler证书了,他说他安装了.第二你是否 ...

  4. 卧槽!两大抓包神器的视频教程来啦!

    应读者的要求整理了两大抓包神器:Fiddler和Wireshark的视频教程!也是费了不少劲才整理出来的,要不是看读者是个妹子小白,我才懒的整理.哈哈!说来你们也是沾妹子的光!有需要的抓紧保存吧!无论 ...

  5. wireshark linux版本_Wireshark大法-WiFi6无线抓包

    Wireshark大法-WiFi6无线抓包 Wireshark是世界上最重要和最广泛使用的网络协议分析器.它让你在微观层面上看到你的网络上发生了什么. Wi-Fi 6,也被称为802.11ax,是不间 ...

  6. Swift仿写喜马拉雅FM

    前言: 最近抽空面了几家公司,大部分都是从基础开始慢慢深入项目和原理.面试内容还是以OC为主,但是多数也都会问一下Swift技术情况,也有例外全程问Swift的公司(做区块链项目),感觉现在虽然大多数 ...

  7. 记录一次通过抓包解决Zabbix no active checks on server

    问题描述: 一般出现这种问题网络上都是让把Host name和agnet端统一起来,然而,我已然这样做了,问题still 如下图. 再看报错日志,问题still 在谷歌找了各种办法,也问过业内的一些朋 ...

  8. APP渗透—Android 7.0 抓包(教程)

    零基础学黑客,搜索公众号:白帽子左一 关于APP渗透的教程及思路,之前发过视频,视频地址:https://www.bilibili.com/video/BV1WK411w7UA/ 用到的工具 1.Pr ...

  9. 【android】喜马拉雅FM sdk使用

    1.喜马拉雅开放平台注册/审核后,在"我的应用"中创建应用 2.添加内容信息 3.我使用的是android studio  androidmainfest中配置 权限: <u ...

最新文章

  1. 17张图揭密支付宝系统架构
  2. java.lang.reflect.InaccessibleObjectException: Unable to make
  3. 将整本《绿野仙踪》存入纳米级DNA中,高效准确,读取无压力
  4. 错误类型:“系统找不到 Microsoft.Office.Interop.Word(转)
  5. 提示tun虚拟网卡没有安装_Win10家庭版通过Hyper-V安装Centos7+Python3.7过程总结
  6. Spring Boot中常见注解诠释
  7. 计算机专业毕业后现状,计算机专业怎么样_毕业生道出现状_“千万”别学
  8. javascript图片库威力增强版
  9. SAP License:SAP PM的应用从实施开始
  10. sdio stm32理解 205 sdio调试 stm32f205
  11. Ruby 开发环境搭建
  12. 计算机cpu型号有,Intel九代CPU型号都有哪些?盘点目前已知的Intel处理器型号大全...
  13. linux 设置mail
  14. oa项目经验描述_项目经验和总结
  15. 全连MGRE与星型拓扑MGRE
  16. 单TYPE-C口 可支持快充又可传输USB2.0数据方案
  17. 如何加入家庭组计算机打印机,解决方案:Win7系统设置家庭组计算机设置共享打印机...
  18. css入门之CSS1、CSS2、CSS3、CSS4发展历程
  19. bug管理工具bugfree配置之一:php mysql apache 配置篇
  20. ACM知识竞)赛 之 SDUT3034 炸学校(最短路Dijkstra)

热门文章

  1. DIY制作高精度低温漂电阻箱0.1~9.9GΩ(1)-- 项目介绍
  2. 使用Vue实现todos(Vue CLI和VueX)
  3. 设计模式:里氏替换原则(详解)
  4. oracle flash_back oracle闪回技术详解,oracle flashback 闪回技术实例
  5. java 篮球队淘汰赛_篮球淘汰赛怎么安排 6支篮球队淘汰赛图
  6. 基于vue 2.x的移动端网页弹窗插件wc-messagebox(支持Alert,Confirm,Toast,Loading)
  7. 读书和不读书的人,最大的区别是什么?--林语堂
  8. 背后的力量 | 升级电子病历基础架构 华云数据助力华中科技大学同济医学院附属协和医院打造就医新模式
  9. Web与排版学上的字体问题
  10. 差异化地推手段,让营销效果翻十倍!