做直播能有多赚钱,Python告诉你
前面我们介绍了APP爬虫环境的搭建和mitmproxy工具的简单使用,这次我们要来一个简单的APP爬虫,尝试一下APP爬虫的简单实用,顺便让我们看看喜马拉雅上的主播到底有多赚钱。
APP爬虫一般分为两种方式,一种是直接分析破解应用的API,模拟API访问获取数据,另一种是设置代理,采用自动化操作,通过mitmproxy进行数据抓取。
分析API接口
这种方式爬取速度最快,但是分为初级和高级,初级是针对部分应用加密不严格,可以通过抓包软件抓包就能分析出一些接口,高级的就需要进行APP脱壳破解,阅读源码分析出接口。
自动化操作
这种方式比较慢,但是相对要简单一些,只要搞定了自动化操作工具,数据的抓取处理很方便。我目前了解了三种自动化工具:appium、Airtest、autoJS。针对这三种方式我们后面都会有文章来专门介绍。
今天我们就先使用初级方式来抓取一下喜马拉雅APP的主播排行榜,来看看这些主播到底有多富有,他们的快乐你能想象到吗?下面开撸了。
配置手机抓包环境
抓包工具我们之前介绍过三个:Fiddler、Charles、mitmproxy,直接安装进行简单配置即可抓包,这里不做详述。网上有茫茫多的这种配置帖子,我贴两个在下面大家自行查看。如果对于工具用法有需求的同学,请上哔哩哔哩搜索相关视频,看一个小时基本上就可以使用了。
Charles手机抓包配置
Fiddler手机抓包配置
操作抓包
打开模拟器和抓包软件
打开喜马拉雅APP,具体操作如下
找到主播榜单以后,默认是小时榜,我们先搜索一下有没有抓到需要的数据,小时榜第一名:夏春瑶。切换到Charles,Ctrl+F打开搜索框
打开底下搜索到的内容,双击一下就会定位到对应的请求上,查看响应数据
通过查看我们就确定了,这个请求就是小时榜的请求地址。根据以上方式我们依次查看日榜和周榜
以同样的方式获取对应的接口url,以下为对应接口:
小时榜:http://114.80.139.232/gift-rank/v1/gift/rank/anchor/hour?ts=1578831339526
日榜:http://114.80.170.77/gift-rank/v1/gift/rank/anchor/daily?ts=1578831339526
周榜:http://114.80.139.232/gift-rank/v1/gift/rank/anchor/week?ts=1578831339526
PS:我在广电网络下抓取的接口和电信网络下不一样,主要是接口中IP地址不一样,不知道是IP变更了,还是和网络有关系,所以如果有同学使用我的代码不能正常抓取数据,请自己抓一下包
接口分析
已经拿到了接口,第一步我们就要尝试一下接口是否能正常抓取到数据
import requests
s = requests.session()
r = s.get(url)
print(r.text)
一般情况下肯定没有这么简单,在headers或者cookies中肯定需要添加一下数据才行,那么我们怎么确定需要加哪些数据呢?Fiddler和Charles都有重复发送请求的功能,在Charles中选中要测试的请求,右键点击Compose,下面就会多出一个请求,前面是一个笔的标记,然后把上面请求的headers中的数据,添加到下面请求的headers中
然后点击底下的Execute按钮,如果请求成功,下面会出现一个状态为200的请求
如果请求不成功,那么就说明这个请求必须依赖上面的某个请求。成功以后呢,在回到带“笔”的那个请求上,删除headers中的部分内容,再次尝试发送请求,看是否能请求成功。反复尝试,直到剩下最少数据,并且可以请求成功。这样就能确定需要在headers或者cookies中添加哪些数据。
通过以上调试,我们发现headers中只需要添加host数据即可,对于小时榜,我们定时在每小时的58分抓取一次,日榜在每天23:58抓取一次,周榜在每周日23:58分抓取一次,代码已经上传到我的GitHub上,数据存储在MongoDB数据库中。这篇我们抓取了一下数据:
- 榜单数据
- 喜爱值
- 直播状态
- 主播名
- 排行
- 用户UID
- 房间ID
- 直播间数据
- 粉丝团名称
- 粉丝数量
- 直播间名称
- 直播开始时间
- 直播结束时间
- 分组ID
- 在线人数
- 参与人数
- 用户头像
以上这些数据都是按照时段保存的,这样等抓取一段时间后,就可以把数据拿出来进行分析,这个等下次我们在进行分析处理。后面抓取的数据我也会导出上传到GitHub上,数据分析这块我不是很熟,只能做一些简单的分析。如果想要获取代码,请在公众号回复:ximalaya,获取代码地址。
如果你觉得我的文章还可以,可以关注我的微信公众号,查看更多实战文章:Python爬虫实战之路
也可以扫描下面二维码,添加我的微信公众号
如果你觉得我的文章还可以,可以关注我的微信公众号,查看更多实战文章:Python爬虫实战之路
也可以扫描下面二维码,添加我的微信公众号
做直播能有多赚钱,Python告诉你的更多相关文章
- 抖音很火的存钱计划,让python告诉你总共可以存到多少钱!
抖音上有个很火的存钱计划,说是第一天存1块钱,第二天存2块钱,第三天存3块钱.....依此类推存365天,总共可以存到多少钱,我们现在用python告诉你怎么做: #定个初始存入金额 money = ...
- python告诉你ti8 dota2英雄bp
文章链接:https://mp.weixin.qq.com/s/phJzZEQojndY-iNe77RF_w 恭喜OG成为ti8冠军,很可惜这次偶数年ti8中国队LGD与冠军失之交臂. 上学那会儿还是 ...
- h5做直播的弹幕效果
最近在搞弹幕效果所以就写一个关于弹幕的吧,刚开始寻思去网上找插件的,但找的插件和我的需求都不太相符,其实做弹幕我知道的有两种方法: 1:一种是用canvas和对象来完成弹幕想过,用canvas来完成弹 ...
- 现在有很多第三方的SDK来做直播,那么我们改选择哪一种?
现在大部分的都会借助第三方的直播技术,这样可以保证直播的质量,趣拍直播就很不错,SDK很好集成,芒果直播也在用.下面来分析一下趣拍直播的一些心得. 如何快速搭建一个完整的手机直播系统 在这个直播如火如 ...
- videojs做直播、弹幕
从上一年开始,我们开始接触直播,现在直播成本真的很低,很多CDN供应商都有提供,本文只是大概讲述播放器这个话题. 开始调研 播放格式,我挑了三种.分别是HLS,RTMP,HTTP-FLV. 下面简单说 ...
- Darwin做直播时对ReflectorSession引用数的控制
在之前的博客中,我们提到了如何用Darwin&live555实现直播过程,那么更进一步,当直播结束时,我们需要关闭所有正在收看的客户端,并且delete转发会话ReflectorSession ...
- 充气娃娃什么感觉?Python告诉你
上期为大家介绍了requests库的基本信息以及使用requests库爬取某东的商品页,收到了很多同学的反馈说期待猪哥的更新,猪哥感到非常开心,今天就带大家来玩一把刺激的! 一.需求背景 在实际开发过 ...
- 10分钟用Python告诉你两个机器人聊天能聊出什么火花
欲直接下载代码文件,关注我们的公众号哦!查看历史消息即可! 现在不是讲各种各样的人工智能嘛,AI下棋,AI客服,AI玩家--其实我一直很好奇,两个AI碰上会怎样,比如一起下棋,一起打游戏-- 今天做个 ...
- CDN百科第四讲 | 如何优雅地在云上“摆摊”——做直播带货,你不得不关注的技术
最近,国家政策开始鼓励“地摊经济”,一时间各家企业平台纷纷推出地摊扶持政策,地摊概念股顺势大涨,地摊生态及配套商品也开始走俏,甚至在网络上也涌现出各种“新摊主速成攻略”,万亿的烟火经济俨然已经走上风口 ...
随机推荐
- opencv---颜色空间转化并实现物体跟踪
一.图像处理的基本操作 因为这是第一篇写opencv的笔记,故先讲讲在python下写opencv的基本操作.总共总结了三点如下: 开头一定要加编码声明:-*- coding: utf-8 -*- p ...
- Escape from the Hell
Escape from the Hell [JAG Asia 2016] 容易证明优先选择差值大的更优 对于最后一瓶我们可以枚举 枚举最后一瓶,然后在树状数组上消去它的影响,然后线段树check是否出 ...
- zabbix监控Linux服务器CPU使用率大于40%的时候报警(实践版)
zabbix自带的模板里面有监控项,所以监控项就不用创建了,直接创建触发器就可以了,触发器细节如下: 名称:CPU使用率大于40% 严重性:严重 表达式:{121.201.54.50:system.c ...
- idea 项目 版本控制文件
- 信息检索盛会 微软“领衔主演”——记ACM SIGIR 2013信息检索国际会议
微软"领衔主演"--记ACM SIGIR 2013信息检索国际会议" title="信息检索盛会 微软"领衔主演"--记ACM SIGIR ...
- IntelliJ的.iml文件及相关的Class Not Found 问题
.iml 文件是IntelliJ IDEA 自动创建的模块文件,用于Java应用开发,存储一些模块开发相关的信息,比如一个Java组件, 插件组件,Maven组件等等, 还可能会存储一些模块路径信息, ...
- 将java list转换为js的数组
var data = new Array();<%ArrayList list = new ArrayList();list.add(0);list.add(1);if(list!=null){ ...
- nodejs express 框架 上传文件
web 项目应用express4.0框架 html 表单post 文件上传失败,后端无法获取提交文件 express不支持文件上传. 方式一 若是图片,可以将图片转码为BASE64上传 前端框架ang ...
- iOS(Swift)学习笔记之去除UINavigationBar下方横线
本文为原创文章,转载请标明出处 // 去除UINavigationBar下方横线 navigationController.navigationBar.shadowImage = UIImage() ...
- 吴裕雄--天生自然KITTEN编程:救救小兔子