国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密

這篇具有很好參考價值的文章主要介紹了【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

聲明:本文只作學(xué)習(xí)研究,禁止用于非法用途,否則后果自負,如有侵權(quán),請告知刪除,謝謝!

1、前言

今天逆向的這個網(wǎng)站 某易云音樂 歌曲的評論列表

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

而要拿到評論列表爬蟲發(fā)送的表單需要兩個參數(shù) params 和 encSecKey。這兩個玩意是加密的,所以重點就是怎么搞定這兩個參數(shù)。

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

2、行動

話不多說,直接分析。

首先我們進入到網(wǎng)易云,隨便進入某一首歌詳情頁。通過抓包分析,很輕松的找到了每一首音樂的評論的位置,現(xiàn)在只需要訪問 https://music.163.com/weapi/comment/resource/comments/get?csrf_token= 就可以了。

可以看到這是一個post請求,而且攜帶的這兩個參數(shù)這么大一坨,不用多想,絕對是個加密參數(shù)。但是大家不要慌,讓我們?nèi)炙阉饕幌拢ǜ鷹R部梢裕矣X得這里直接搜索要快一點),仔細分析一波。

通過搜索任意一個參數(shù)可以快速找到加密的位置,可以看到

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

接下來就是打斷點分析。

首先可以確定的是 params= bVe7X.encText,

encSecKey=bVe7X.encSecKey

而 bVe7X 又等于 window.asrsea 這個函數(shù),觀察可知這個函數(shù)是需要四個參數(shù)的,

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

在控制臺中打印一下四個參數(shù),分別是:

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

經(jīng)過多次測試,發(fā)現(xiàn)后面三個參數(shù)是不變的(如下圖),而第一個參數(shù)也只有 rid、threadId、cursor 會變,rid 和 threadId 還是一樣的,而且是 R_SO_4_ 加上歌曲的 id,cursor 是毫秒的時間戳,那這就簡單了。

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

好了,四個參數(shù)已經(jīng)搞定,接下來就是關(guān)鍵了,進入 window.asrsea 函數(shù)

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

可以看到,d 就是 window.asrsea 這個函數(shù)。要傳入的四個參數(shù)我們已經(jīng)知道了。

不管那么多,直接復(fù)制到 js 文件里看看結(jié)果。

為了避免與后面其他的參數(shù)起沖突,這里我就改了下名字,然后運行。

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

意料之中,報錯了。

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

說簡單也簡單,報錯了之后,接下來就是缺什么補什么,這里就大家去 js 頁面找自己慢慢去補了哈。

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

另外,當(dāng)補到b函數(shù)的時候,會說 CryptoJS is not defined,仔細一看原來 b 函數(shù)里面有個 AES 加密,能調(diào)庫就調(diào)庫,這里就npm install crypto-js,然后導(dǎo)入就可以了

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

后面的就沒有什么大問題了。補完函數(shù)后(大概有34個函數(shù)左右,400行左右的 js 代碼),我們也是順利的拿到了想要的東西。

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密,js逆向,Python,筆記,爬蟲,javascript,開發(fā)語言

雖然過程艱辛,很累的,一味以為拿錯了,但結(jié)果是好的。接下來就是寫代碼拿評論了,這里我用的是 execjs 庫來執(zhí)行 js 代碼,完整 Python 代碼如下:

import json
import time

import execjs
import requests
from fake_useragent import UserAgent


def get_argument(music_id, page):
    with open('./comments.js', 'r', encoding='utf-8') as f:
        time_now = int(round(time.time() * 1000))
        # 第一個 {} 符號被誤識別為占位符,導(dǎo)致后面的鍵值對無法正確替換,可以使用雙大括號 {{}} 來表示字面意義上的大括號
        aa = '{{"rid":"R_SO_4_{}","threadId":"R_SO_4_{}","pageNo":"{}","pageSize":"20","cursor":"{}","offset":"0","orderType":"1","csrf_token":""}}'.format(
            music_id, music_id, page, time_now)
        bb = '010001'
        cc = '00e0b509f6259df8642dbc35662901477df22677ec152b5ff68ace615bb7b725152b3ab17a876aea8a5aa76d2e417629ec4ee341f56135fccf695280104e0312ecbda92557c93870114af6c9d05c4f7f0c3685b7a46bee255932575cce10b424d813cfe4875d3e82047b97ddef52741d546b8e289dc6935b3ece0462db0a22b8e7'
        dd = '0CoJUm6Qyw8W8jud'
        argument_data = execjs.compile(f.read()).call('d', aa, bb, cc, dd)
        params = argument_data['encText']
        encSecKey = argument_data['encSecKey']
    return params, encSecKey


def get_comment(params, encSecKey):
    url = 'https://music.163.com/weapi/comment/resource/comments/get?csrf_token='
    header = {
        "Origin": "https://music.163.com",
        "Pragma": "no-cache",
        "Referer": "https://music.163.com/song?id=65766",
        "Sec-Ch-Ua": "\"Not/A)Brand\";v=\"99\", \"Google Chrome\";v=\"115\", \"Chromium\";v=\"115\"",
        "Sec-Ch-Ua-Mobile": "?0",
        "Sec-Ch-Ua-Platform": "\"Windows\"",
        "Sec-Fetch-Dest": "empty",
        "Sec-Fetch-Mode": "cors",
        "Sec-Fetch-Site": "same-origin",
        "User-Agent": UserAgent().random
    }
    data = {
        "params": f"{params}",
        "encSecKey": f"{encSecKey}"
    }
    response = requests.post(url=url, headers=header, data=data)
    data = response.text
    return data


def parse_data(data):
    json_data = json.loads(data)
    comments = json_data['data']['comments']
    print('采集評論數(shù)據(jù)如下:')
    for i in comments:
        comment = i['content']
        print(comment)


if __name__ == '__main__':
    while True:
        music_id = input('請輸入歌曲id:')
        page = input('請輸入要采集第幾頁評論:')
        params, encSecKey = get_argument(music_id, page)
        response_data = get_comment(params, encSecKey)
        parse_data(response_data)
        is_continue = input('是否繼續(xù)采集(y/n):')
        if is_continue == 'n':
            break

我這里是封裝成一次采集一頁評論,如果需要采集全部評論的需求,自己修改一下就可以了

3、源碼

Github:網(wǎng)易云音樂PC端逆向
CSDN:網(wǎng)易云音樂PC端 js 逆向資源

4、號外

如果我的博客對你有幫助、如果你喜歡我的博客內(nèi)容,請 “??點贊” “??評論” “??收藏” 一鍵三連哦!
【????????????關(guān)注我| 獲取更多源碼 | 定制源碼】大學(xué)生畢設(shè)模板、期末大作業(yè)模板 、Echarts大數(shù)據(jù)可視化、爬蟲逆向等! 「一起探討 ,互相學(xué)習(xí)」!(vx:python812146)
以上內(nèi)容技術(shù)相關(guān)問題??歡迎一起交流學(xué)習(xí)??????????????文章來源地址http://www.zghlxwxcb.cn/news/detail-620158.html

到了這里,關(guān)于【爬蟲逆向案例】某易云音樂(評論)js逆向—— params、encSecKey解密的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • python爬蟲之JS逆向基礎(chǔ)小案例:網(wǎng)抑云數(shù)據(jù)獲取

    python爬蟲之JS逆向基礎(chǔ)小案例:網(wǎng)抑云數(shù)據(jù)獲取

    嗨嘍~大家好呀,這里是魔王吶 ? ~! python更多源碼/資料/解答/教程等 點擊此處跳轉(zhuǎn)文末名片免費獲取 所用軟件 解釋器: python 3.8 編輯器: pycharm 2022.3 使用的模塊 第三方模塊: requests 數(shù)據(jù)請求 execjs pip install pyexecjs 內(nèi)置模塊(無需安裝): nodejs 模塊安裝: win + R 輸入cmd 輸入安

    2024年01月20日
    瀏覽(28)
  • 【Python爬蟲案例】抖音下載視頻+X-Bogus參數(shù)JS逆向分析

    【Python爬蟲案例】抖音下載視頻+X-Bogus參數(shù)JS逆向分析

    選擇自己感興趣的抖音博主,本次以“經(jīng)典老歌【車載U盤】”為例 每次請求的頁面會有很多接口,需要對接口進行篩選: 第一步篩選XHR篩選 第二步篩選URL中帶有post 通過篩選play_add值找到視頻的地址 通過對比兩次請求發(fā)現(xiàn)只有X-Bogus數(shù)值會有變化,max_cursor是用翻頁,后文再

    2024年03月15日
    瀏覽(26)
  • 爬蟲案例-使用Session登錄指定網(wǎng)站(JS逆向AES-CBC加密+MD5加密)

    爬蟲案例-使用Session登錄指定網(wǎng)站(JS逆向AES-CBC加密+MD5加密)

    總體概覽:使用Session登錄該網(wǎng)站,其中包括對password參數(shù)進行js逆向破解 ????????????????(涉及加密:md5加密+AES-CBC加密) 難度:兩顆星 目標網(wǎng)址:aHR0cHM6Ly93d3cuZnhiYW9nYW8uY29tLw== 下面文章將分為四個部分: ????????1、定位主體加密函數(shù),進行斷點 ????????2、分

    2024年02月09日
    瀏覽(21)
  • 你評論,我贈書~【哈士奇贈書 - 12期】-〖爬蟲逆向進階實戰(zhàn)〗參與評論,即可有機獲得

    你評論,我贈書~【哈士奇贈書 - 12期】-〖爬蟲逆向進階實戰(zhàn)〗參與評論,即可有機獲得

    大家好,我是 哈士奇 ,一位工作了十年的\\\"技術(shù)混子\\\", 致力于為開發(fā)者賦能的UP主, 目前正在運營著 TFS_CLUB社區(qū)。 ?? 人生格言:優(yōu)于別人,并不高貴,真正的高貴應(yīng)該是優(yōu)于過去的自己。?? ?? 如果文章知識點有錯誤的地方,請指正!和大家一起學(xué)習(xí),一起進步?? ?? 如果感

    2024年02月03日
    瀏覽(25)
  • Python逆向爬蟲入門教程: 酷狗音樂加密參數(shù)signature逆向解析

    Python逆向爬蟲入門教程: 酷狗音樂加密參數(shù)signature逆向解析

    網(wǎng)站鏈接: aHR0cHM6Ly93d3cua3Vnb3UuY29tLw== 正常抓包分析找到音頻鏈接地址 ? 通過鏈接搜索找到對應(yīng)的數(shù)據(jù)包位置 ? ? 分析 signature 參數(shù)加密位置 ? ? 通過 s 列表 合并成字符串, 傳入d函數(shù)中進行加密, 返回32位, 還是比較明顯的MD5加密, 相當(dāng)于請求參數(shù)除了signature 以外, 在頭尾加了一

    2024年02月02日
    瀏覽(27)
  • Python爬蟲實戰(zhàn)案例——音樂爬蟲,收費歌曲依舊可用

    Python爬蟲實戰(zhàn)案例——音樂爬蟲,收費歌曲依舊可用

    因為現(xiàn)在眾多音樂平臺下載歌曲都要收費了,導(dǎo)致我沒有車載音樂聽了。于是便自學(xué)爬蟲做了這個簡易的音樂爬蟲。不是那些大平臺的音樂爬蟲,是一個不知名的小音樂網(wǎng)站的爬蟲。下面開始正題: 首先,便是找不是那幾家大互聯(lián)網(wǎng)公司的音樂網(wǎng)站,在我的不懈努力之下終于

    2024年02月03日
    瀏覽(26)
  • WebSocket爬蟲與JS逆向?qū)崙?zhàn)

    WebSocket爬蟲與JS逆向?qū)崙?zhàn)

    聲明:本文章中所有內(nèi)容僅供學(xué)習(xí)交流,不可用于任何商業(yè)用途和非法用途,否則后果自負,如有侵權(quán),請聯(lián)系作者立即刪除!由于本人水平有限,如有理解或者描述不準確的地方,還望各位大佬指教?。?練習(xí)網(wǎng)站: Q3JhenkgUHJvTW9ua2V5IGh0dHBzOi8vd3d3LnBhbnpob3UuZ292LmNuL3p3Z2tfMTU4NjEve

    2024年02月07日
    瀏覽(19)
  • 爬蟲websocket與RPC逆向案例:某建筑市場監(jiān)管

    爬蟲websocket與RPC逆向案例:某建筑市場監(jiān)管

    聲明: 該文章為學(xué)習(xí)使用,嚴禁用于商業(yè)用途和非法用途,違者后果自負,由此產(chǎn)生的一切后果均與作者無關(guān) 一、websocket簡介 WebSocket是一種在Web瀏覽器和服務(wù)器之間進行全雙工通信的協(xié)議。它允許在客戶端和服務(wù)器之間建立持久的連接,使得雙方可以通過這個連接實時地交

    2024年01月22日
    瀏覽(17)
  • 【JS逆向?qū)W習(xí)】36kr登陸逆向案例(webpack)

    【JS逆向?qū)W習(xí)】36kr登陸逆向案例(webpack)

    webpack 是一個基于模塊化的打包(構(gòu)建)工具, 它把一切都視作模塊 webpack 數(shù)組形式,通過 下標 取值 webpack 對象形式,通過 key 取值 接口 : https://gateway.36kr.com/api/mus/login/byMobilePassword 加密參數(shù) : - mobileNo - password 老規(guī)矩,先輸入 賬號、密碼 ,點擊登錄,分析網(wǎng)絡(luò)請求,如下

    2024年01月19日
    瀏覽(37)
  • 爬蟲+RPC+js逆向---直接獲取加密值

    爬蟲+RPC+js逆向---直接獲取加密值

    免責(zé)聲明:本文僅做技術(shù)交流與學(xué)習(xí),請勿用于其它違法行為;如果造成不便,請及時聯(lián)系... 目錄 爬蟲+RPC+js逆向---直接獲取加密值 target網(wǎng)址: 抓包 下斷點 找到加密函數(shù) 分析參數(shù) RPC流程 一坨: 二坨: 運行py,拿到加密值 優(yōu)志愿_2024高考志愿填報系統(tǒng)-新高考志愿填報選科指南 數(shù)據(jù)往

    2024年04月14日
    瀏覽(33)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包