小紅書(shū)x-sign 算法分析

#小紅書(shū)爬蟲(chóng)# #小紅書(shū)小程序滑塊# #小紅書(shū)-sign#

小紅書(shū) 小程序爬蟲(chóng) 小紅書(shū)爬蟲(chóng)

小紅書(shū)是有 APP 和 小程序兩個(gè)入口。今天介紹小紅書(shū)小程序的爬蟲(chóng)。

主要流程是以下幾步

  • 1.搭建抓包環(huán)境
  • 2.抓包分析
  • 3.模擬構(gòu)造請(qǐng)求
  • 4. 大規(guī)模驗(yàn)證
  • 5. 小紅書(shū)滑塊解決

搭建抓包環(huán)境

這里不多說(shuō),我主要使用 IOS 手機(jī) charles 。有時(shí)候也會(huì)使用 mitmproxy。

基本上就是證書(shū)安裝,還有 ios 信任證書(shū), 就可以抓到 HTTPS 的包了。有時(shí)間詳細(xì)介紹下。

特別提示 mitmproxy 有一個(gè)定制代碼功能。mitmdump 這個(gè)非常好用??梢栽诖a里面進(jìn)行中間數(shù)據(jù)串改。

抓包分析

第一步配置好抓包環(huán)境后,第二步就是抓包了。在微信里面搜索小紅書(shū)小程序,然后打開(kāi)。
下面就是看到的內(nèi)容。這里選了旅行的 tag。

小紅書(shū)x-sign 算法分析


點(diǎn)開(kāi)任意一篇文章進(jìn)行抓包,這里我們點(diǎn)擊右上角的美女(我就喜歡美女嘿嘿)。

在 charles 中查看訪(fǎng)問(wèn)的鏈接。下圖就可以看到請(qǐng)求的鏈接和返回的數(shù)據(jù)了。

小紅書(shū)x-sign 算法分析

進(jìn)行測(cè)試:在鏈接上右鍵,Copy cURL Reqest 就可以得到 curl 的請(qǐng)求。復(fù)制到 iterm 中執(zhí)行就可以得到數(shù)據(jù)了。

小紅書(shū)x-sign 算法分析

這只是單一的一個(gè)數(shù)據(jù)驗(yàn)證。沒(méi)問(wèn)題了。接下來(lái)就是小規(guī)模驗(yàn)證數(shù)據(jù)。

上面的圖,中間有兩個(gè)標(biāo)紅的地方需要特別關(guān)注,第一個(gè)是 x-sign 第二個(gè)是我打碼的 authorization 。

模擬構(gòu)造請(qǐng)求

模擬構(gòu)造請(qǐng)求的時(shí)候,就需要關(guān)注上一步的 x-sign 和 authorization。authorization 是固定的,每一個(gè)用戶(hù)一個(gè) authorization。相當(dāng)于登錄的 session。這個(gè)是不會(huì)變得。但是大量請(qǐng)求會(huì)出滑塊。這個(gè)后面再說(shuō)。接下來(lái)就是 x-sign 驗(yàn)證。

多抓包幾個(gè)鏈接分析查看 x-sign 都是 33 為的,而且首位都是 X。那么很容易聯(lián)想到 x-sign 就是 X+md5 的結(jié)果。

既然是 md5 就可以在代碼所有請(qǐng)求里面搜索 md5 。然后找到詳細(xì)的位置分析后進(jìn)行編碼就行了。

這里分析到了詳細(xì)的算法。算法實(shí)現(xiàn)方式也有了。詳細(xì)的代碼邏輯就不展示了。

大概就是 將所有參數(shù)組合再加上一個(gè)鹽值(slat)進(jìn)行 md5. 最后在首位加上一個(gè) X。(僅供交流,需要加feilang235)。

獲得上面兩個(gè)參數(shù)后,接下來(lái)就是用代碼進(jìn)行模擬請(qǐng)求了。這個(gè)簡(jiǎn)單。python requests 一把梭驗(yàn)證 x-sign 沒(méi)問(wèn)題就行。

大規(guī)模驗(yàn)證


少量抓取沒(méi)問(wèn)題后,接下來(lái)就是大規(guī)模驗(yàn)證下。將相關(guān)接口都寫(xiě)完后

  • 1. 小紅書(shū)進(jìn)行搜索
  • 2. 搜索得到的筆記,進(jìn)入筆記詳情
  • 3. 查看筆記的評(píng)論
  • 4. 獲取評(píng)論的用戶(hù)信息

以上就是一個(gè)全鏈路循環(huán)。
代碼完成后,開(kāi)始抓取,結(jié)果跑了一會(huì)后,出現(xiàn)滑塊了,程序錯(cuò)誤。
滑塊分析,這個(gè)過(guò)程比較難。折騰了很久才搞定。這里說(shuō)一下大致原理。

  • 1. 模擬請(qǐng)求小紅書(shū)滑塊滑塊接口
  • 2. 得到小紅書(shū)滑塊的圖片
  • 3. 對(duì)小紅書(shū)滑塊圖片進(jìn)行處理,對(duì)顏色做處理,分析出滑塊位置
  • 4. 使用 js 進(jìn)行模式拖動(dòng),完成滑塊的滑動(dòng)動(dòng)作。
  • 5. 對(duì)結(jié)果進(jìn)行提交,并且軌道需要加密。
  • 6. 完成小紅書(shū)滑塊驗(yàn)證

通過(guò)上面的步驟就可以完成滑塊處理了。然后又可以愉快的抓點(diǎn)數(shù)據(jù)了。當(dāng)然如果量太大了估計(jì)也會(huì)對(duì)賬號(hào)產(chǎn)生影響。不過(guò)目前我還沒(méi)有遇到過(guò)。

補(bǔ)充說(shuō)明

文章僅對(duì)小紅書(shū)小程序抓包進(jìn)行了分析,作為技術(shù)交流。如果對(duì)小紅書(shū)造成了影響請(qǐng)聯(lián)系我刪除。

后續(xù)盡量帶來(lái) 快手爬蟲(chóng),抖音爬蟲(chóng)等 APP的分析。期待。

—— 如果覺(jué)得文章還OK,請(qǐng)轉(zhuǎn)發(fā) ——

特別提示:關(guān)注本專(zhuān)欄,別錯(cuò)過(guò)行業(yè)干貨!

PS:本司承接 小紅書(shū) / 淘寶逛逛 / 抖音 / 百度系 / 知乎 / 微博/大眾點(diǎn)評(píng) 等 全網(wǎng)各平臺(tái)推廣;

咨詢(xún)微信:139 1053 2512 (同電話(huà))

首席增長(zhǎng)官CGO薦讀:

更多精彩,關(guān)注:增長(zhǎng)黑客(GrowthHK.cn)

增長(zhǎng)黑客(Growth Hacker)是依靠技術(shù)和數(shù)據(jù)來(lái)達(dá)成各種營(yíng)銷(xiāo)目標(biāo)的新型團(tuán)隊(duì)角色。從單線(xiàn)思維者時(shí)常忽略的角度和高度,梳理整合產(chǎn)品發(fā)展的因素,實(shí)現(xiàn)低成本甚至零成本帶來(lái)的有效增長(zhǎng)…

本文經(jīng)授權(quán)發(fā)布,不代表增長(zhǎng)黑客立場(chǎng),如若轉(zhuǎn)載,請(qǐng)注明出處:http://m.gptmaths.com/mcn/xiaohongshu/41547.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
上一篇 2021-06-25 18:37
下一篇 2021-06-25 19:01

增長(zhǎng)黑客Growthhk.cn薦讀更多>>

發(fā)表回復(fù)

登錄后才能評(píng)論