做直播能有多賺錢,Python告訴你(1)

I接口

這種方式爬取速度最快,但是分為初級和高級,初級是針對部分應用加密不嚴格,可以通過抓包軟件抓包就能分析出一些接口,高級的就需要進行APP脫殼破解,閱讀源碼分析出接口。

自動化操作

這種方式比較慢,但是相對要簡單一些,只要搞定了自動化操作工具,數據的抓取處理很方便。我目前瞭解了三種自動化工具:appium、Airtest、autoJS。針對這三種方式我們後面都會有文章來專門介紹。

今天我們就先使用初級方式來抓取一下喜馬拉雅APP的主播排行榜,來看看這些主播到底有多富有,他們的快樂你能想象到嗎?下面開擼了。


做直播能有多賺錢,Python告訴你(1)

配置手機抓包環境

抓包工具我們之前介紹過三個:Fiddler、Charles、mitmproxy,直接安裝進行簡單配置即可抓包,這裡不做詳述。網上有茫茫多的這種配置帖子,我貼兩個在下面大家自行查看。如果對於工具用法有需求的同學,請上嗶哩嗶哩搜索相關視頻,看一個小時基本上就可以使用了。Charles手機抓包配置Fiddler手機抓包配置

操作抓包

打開模擬器和抓包軟件

打開喜馬拉雅APP,具體操作如下


做直播能有多賺錢,Python告訴你(1)


找到主播榜單


找到主播榜單以後,默認是小時榜,我們先搜索一下有沒有抓到需要的數據,小時榜第一名:夏春瑤。切換到Charles,Ctrl+F打開搜索框

做直播能有多賺錢,Python告訴你(1)

打開底下搜索到的內容,雙擊一下就會定位到對應的請求上,查看響應數據

做直播能有多賺錢,Python告訴你(1)

做直播能有多賺錢,Python告訴你(1)


查看數據

通過查看我們就確定了,這個請求就是小時榜的請求地址。根據以上方式我們依次查看日榜和周榜

做直播能有多賺錢,Python告訴你(1)

做直播能有多賺錢,Python告訴你(1)

以同樣的方式獲取對應的接口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=1578831339526PS:我在廣電網絡下抓取的接口和電信網絡下不一樣,主要是接口中IP地址不一樣,不知道是IP變更了,還是和網絡有關係,所以如果有同學使用我的代碼不能正常抓取數據,請自己抓一下包

接口分析

已經拿到了接口,第一步我們就要嘗試一下接口是否能正常抓取到數據

<code>import requestss = requests.session()r = s.get(url)print(r.text)/<code>

一般情況下肯定沒有這麼簡單,在headers或者cookies中肯定需要添加一下數據才行,那麼我們怎麼確定需要加哪些數據呢?Fiddler和Charles都有重複發送請求的功能,在Charles中選中要測試的請求,右鍵點擊Compose,下面就會多出一個請求,前面是一個筆的標記,然後把上面請求的headers中的數據,添加到下面請求的headers中

做直播能有多賺錢,Python告訴你(1)

然後點擊底下的Execute按鈕,如果請求成功,下面會出現一個狀態為200的請求

做直播能有多賺錢,Python告訴你(1)

如果請求不成功,那麼就說明這個請求必須依賴上面的某個請求。成功以後呢,在回到帶“筆”的那個請求上,刪除headers中的部分內容,再次嘗試發送請求,看是否能請求成功。反覆嘗試,直到剩下最少數據,並且可以請求成功。這樣就能確定需要在headers或者cookies中添加哪些數據。

通過以上調試,我們發現headers中只需要添加host數據即可,對於小時榜,我們定時在每小時的58分抓取一次,日榜在每天23:58抓取一次,周榜在每週日23:58分抓取一次,代碼已經上傳到我的GitHub上,數據存儲在MongoDB數據庫中。這篇我們抓取了一下數據:

  • 榜單數據喜愛值直播狀態主播名排行用戶UID房間ID
  • 直播間數據粉絲團名稱粉絲數量直播間名稱直播開始時間直播結束時間分組ID在線人數參與人數用戶頭像

以上這些數據都是按照時段保存的,這樣等抓取一段時間後,就可以把數據拿出來進行分析,這個等下次我們在進行分析處理。後面抓取的數據我也會導出上傳到GitHub上,數據分析這塊我不是很熟,只能做一些簡單的分析。如果想要獲取代碼,請觀眾“威信工種好”:Python爬蟲實戰之路。回覆:ximalaya,獲取代碼地址。


分享到:


相關文章: