作直播能有多賺錢,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爬蟲實戰之路也能夠掃描下面二維碼,添加個人微信公衆號

相關文章
相關標籤/搜索