小紅書 小程序爬蟲 小紅書爬蟲
小紅書是有 APP 和 小程序兩個入口。今天介紹小紅書小程序的爬蟲。
主要流程是以下幾步
- 1.搭建抓包環(huán)境
- 2.抓包分析
- 3.模擬構(gòu)造請求
- 4. 大規(guī)模驗證
- 5. 小紅書滑塊解決
搭建抓包環(huán)境
這里不多說,我主要使用 IOS 手機 charles 。有時候也會使用 mitmproxy。
基本上就是證書安裝,還有 ios 信任證書, 就可以抓到 HTTPS 的包了。有時間詳細介紹下。
特別提示 mitmproxy 有一個定制代碼功能。mitmdump 這個非常好用。可以在代碼里面進行中間數(shù)據(jù)串改。
抓包分析
第一步配置好抓包環(huán)境后,第二步就是抓包了。在微信里面搜索小紅書小程序,然后打開。
下面就是看到的內(nèi)容。這里選了旅行的 tag。
點開任意一篇文章進行抓包,這里我們點擊右上角的美女(我就喜歡美女嘿嘿)。
在 charles 中查看訪問的鏈接。下圖就可以看到請求的鏈接和返回的數(shù)據(jù)了。
進行測試:在鏈接上右鍵,Copy cURL Reqest 就可以得到 curl 的請求。復(fù)制到 iterm 中執(zhí)行就可以得到數(shù)據(jù)了。
這只是單一的一個數(shù)據(jù)驗證。沒問題了。接下來就是小規(guī)模驗證數(shù)據(jù)。
上面的圖,中間有兩個標紅的地方需要特別關(guān)注,第一個是 x-sign 第二個是我打碼的 authorization 。
模擬構(gòu)造請求
模擬構(gòu)造請求的時候,就需要關(guān)注上一步的 x-sign 和 authorization。authorization 是固定的,每一個用戶一個 authorization。相當于登錄的 session。這個是不會變得。但是大量請求會出滑塊。這個后面再說。接下來就是 x-sign 驗證。
多抓包幾個鏈接分析查看 x-sign 都是 33 為的,而且首位都是 X。那么很容易聯(lián)想到 x-sign 就是 X+md5 的結(jié)果。
既然是 md5 就可以在代碼所有請求里面搜索 md5 。然后找到詳細的位置分析后進行編碼就行了。
這里分析到了詳細的算法。算法實現(xiàn)方式也有了。詳細的代碼邏輯就不展示了。
大概就是 將所有參數(shù)組合再加上一個鹽值(slat)進行 md5. 最后在首位加上一個 X。(僅供交流,需要加feilang235)。
獲得上面兩個參數(shù)后,接下來就是用代碼進行模擬請求了。這個簡單。python requests 一把梭驗證 x-sign 沒問題就行。
大規(guī)模驗證
少量抓取沒問題后,接下來就是大規(guī)模驗證下。將相關(guān)接口都寫完后
- 1. 小紅書進行搜索
- 2. 搜索得到的筆記,進入筆記詳情
- 3. 查看筆記的評論
- 4. 獲取評論的用戶信息
以上就是一個全鏈路循環(huán)。
代碼完成后,開始抓取,結(jié)果跑了一會后,出現(xiàn)滑塊了,程序錯誤。
滑塊分析,這個過程比較難。折騰了很久才搞定。這里說一下大致原理。
- 1. 模擬請求小紅書滑塊滑塊接口
- 2. 得到小紅書滑塊的圖片
- 3. 對小紅書滑塊圖片進行處理,對顏色做處理,分析出滑塊位置
- 4. 使用 js 進行模式拖動,完成滑塊的滑動動作。
- 5. 對結(jié)果進行提交,并且軌道需要加密。
- 6. 完成小紅書滑塊驗證
通過上面的步驟就可以完成滑塊處理了。然后又可以愉快的抓點數(shù)據(jù)了。當然如果量太大了估計也會對賬號產(chǎn)生影響。不過目前我還沒有遇到過。
補充說明
文章僅對小紅書小程序抓包進行了分析,作為技術(shù)交流。如果對小紅書造成了影響請聯(lián)系我刪除。
后續(xù)盡量帶來 快手爬蟲,抖音爬蟲等 APP的分析。期待。
—— 如果覺得文章還OK,請轉(zhuǎn)發(fā) ——
特別提示:關(guān)注本專欄,別錯過行業(yè)干貨!
PS:本司承接 小紅書 / 淘寶逛逛 / 抖音 / 百度系 / 知乎 / 微博/大眾點評 等 全網(wǎng)各平臺推廣;
咨詢微信:139 1053 2512 (同電話)
首席增長官CGO薦讀:
更多精彩,關(guān)注:增長黑客(GrowthHK.cn)
增長黑客(Growth Hacker)是依靠技術(shù)和數(shù)據(jù)來達成各種營銷目標的新型團隊角色。從單線思維者時常忽略的角度和高度,梳理整合產(chǎn)品發(fā)展的因素,實現(xiàn)低成本甚至零成本帶來的有效增長…
本文經(jīng)授權(quán)發(fā)布,不代表增長黑客立場,如若轉(zhuǎn)載,請注明出處:http://m.gptmaths.com/mcn/xiaohongshu/41547.html