這裡是對網頁版的網易雲**進行抓包,分析網路請求,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...