作直播能有多赚钱,Python告诉你

前面咱们介绍了APP爬虫环境的搭建和mitmproxy工具的简单使用,此次咱们要来一个简单的APP爬虫,尝试一下APP爬虫的简单实用,顺便让咱们看看喜马拉雅上的主播到底有多赚钱。python

APP爬虫通常分为两种方式,一种是直接分析破解应用的API,模拟API访问获取数据,另外一种是设置代理,采用自动化操做,经过mitmproxy进行数据抓取。数据库

分析API接口

这种方式爬取速度最快,可是分为初级和高级,初级是针对部分应用加密不严格,能够经过抓包软件抓包就能分析出一些接口,高级的就须要进行APP脱壳破解,阅读源码分析出接口。segmentfault

自动化操做

这种方式比较慢,可是相对要简单一些,只要搞定了自动化操做工具,数据的抓取处理很方便。我目前了解了三种自动化工具:appium、Airtest、autoJS。针对这三种方式咱们后面都会有文章来专门介绍。微信

今天咱们就先使用初级方式来抓取一下喜马拉雅APP的主播排行榜,来看看这些主播到底有多富有,他们的快乐你能想象到吗?下面开撸了。
cookie

配置手机抓包环境

抓包工具咱们以前介绍过三个:Fiddler、Charles、mitmproxy,直接安装进行简单配置便可抓包,这里不作详述。网上有茫茫多的这种配置帖子,我贴两个在下面你们自行查看。若是对于工具用法有需求的同窗,请上哔哩哔哩搜索相关视频,看一个小时基本上就可使用了。
Charles手机抓包配置
Fiddler手机抓包配置网络

操做抓包

打开模拟器和抓包软件

打开喜马拉雅APP,具体操做以下
找到主播榜单
找到主播榜单之后,默认是小时榜,咱们先搜索一下有没有抓到须要的数据,小时榜第一名:夏春瑶。切换到Charles,Ctrl+F打开搜索框session

打开底下搜索到的内容,双击一下就会定位到对应的请求上,查看响应数据app

查看数据

经过查看咱们就肯定了,这个请求就是小时榜的请求地址。根据以上方式咱们依次查看日榜和周榜工具

以一样的方式获取对应的接口url,如下为对应接口:
小时榜:http://114.80.139.232/gift-ra...
日榜:http://114.80.170.77/gift-ran...
周榜:http://114.80.139.232/gift-ra...
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爬虫实战之路也能够扫描下面二维码,添加个人微信公众号

相关文章
相关标签/搜索