破解網易雲js加密,爬蟲獲取網易雲評論

2021-10-02 02:08:45 字數 2051 閱讀 5436

這裡是對網頁版的網易雲**進行抓包,分析網路請求,url 然後可以發現 所有的網易雲熱評都是通過這個介面返回的json

找到js檔案 根據習慣我們先搜尋一下看看能不能找得到這兩個引數;開啟全域性搜尋很巧的是 我們在這裡可以直接根據encseckey定位到加密引數,有很多別的**會把名字改動,就沒這麼好找了

往下翻一下可以看到

只要定位到加密引數接下來的就容易很多了,在這裡可以看到這兩個引數是由window.asrsea獲得的

在然後就可以找到這個函式是怎麼生成的,用了哪些引數

這這裡可以看到abc幾個函式的功能,這個時候我們就要動態除錯一下 看看這幾個函式的作用 變數到底是什麼值

其中a是產生乙個16位的隨機數(這裡我直接讓它等於fwteyduoxlnehblp)為什麼要等與這個呢 hhh 因為我發現這個隨機數,他在生成enctext的時候用了一次,生成encseckey的時候,又用了一次,而且encseckey就只跟這個隨機數相關,所以讓這個隨機數為定值的話,就可以直接得到encseckey的值,不用再去搞乙個rsa加密

b函式就是我們主要要解決的aes加密,經過除錯,我們可以知道它的兩個引數a、b分別是加密字元轉、金鑰。以及aes的偏移量為0102030405060708、加密模式為cbc

經過了一番除錯以後我們知道了這幾個引數的具體值 我們就可以用python**把這幾個引數實現出來。

def aes_encrypt

(text, key)

:

pad =16-

len(text)

%16

text = text + pad *

chr(pad)

encryptor =

aes.

new(key,

aes.

mode_cbc

,"0102030405060708"

)

encrypt_text = encryptor.

encrypt

(text)

encrypt_text = base64.

b64encode

(encrypt_text)

return encrypt_text

經過js加密碼的分析,我用python實現了一下aes加密,具體**如下,包含兩個引數,乙個是需要加密的字串,乙個是金鑰

f_key =

"0cojum6qyw8w8jud"

text =

""rs =

aes_encrypt

(text, f_key)

params =

aes_encrypt

(str

(rs)[2

:-1]

,"fwteyduoxlnehblp"

)

data =

headers =

url =

""raw = requests.

post

(url,headers=headers, data=data)

print

(raw.

json()

)

end

網易雲加密

1,找資料的 2,模擬傳送請求 sources裡面查詢檔案 滑鼠左鍵點選一下進入js檔案 斷點除錯 搜尋key值 有這parame和encseckey兩個引數的 parame encseckey 全程用console進行分析 h接受4個引數 宣告了乙個json和乙個i變數等於16位的隨機字串 對en...

網易雲歌詞獲取

剛好看到有一款外掛程式可以得到這些歌曲,但是歌詞的請求鏈結卻一直都抓不到。無奈之下,只好向度娘求助了。搜尋一番後,發現可以根據網易雲歌曲的id,拼接請求歌詞的鏈結,但是請求網頁版返回的是json字串型別的資料,有干擾資訊。所以就想著能不能利用python來處理一下,減少一點步驟,搞個 一鍵獲取 之類...

反爬蟲爬取網易雲歌單

一 主題式網路爬蟲設計方案 1.主題式網路爬蟲名稱 爬取網易雲 歌單 2.主題式網路爬蟲爬取的內容與資料特徵分析 3.主題式網路爬蟲設計方案概述 包括實現思路與技術難點 實現思路 使用單執行緒爬取,初始化資訊,設定請求頭部資訊,獲取網頁資源,使用etree進行網頁解析,爬取多頁時重新整理offset...