前幾天給大家分享jsrpc的介紹篇,python網路爬蟲之js逆向之遠端呼叫(rpc)免去摳**補環境簡介,感興趣的小夥伴可以戳此文前往。今天給大家來個jsrpc實戰教程,jsrpc學習——cookie變化的**破解教程,讓大家繼續加深對jsrpc的理解和認識。下面是具體操作過程,不懂的小夥伴可以私我。
1、因為網易雲**熱評的加密並不在cookie上,而是引數加密,所以這裡就不需要進行hook住cookie了。
2、之前就知道網易雲**熱評的加密存在之地是在下圖的位置,是那個函式window.asrsea(json.stringify(i1x), bsr1x(["流淚", "強"]), bsr1x(xp8h.md), bsr1x(["愛心", "女孩", "驚恐", "大笑"]))
3、找到了aes加密地方的函式,就賦值乙個自己名字的全域性變數,然後**加密就行了。之後可以在控制台輸入指令window.dcpeng = window.asrsea,其中window.asrsea為加密函式。注意:這個地方挺重要的,很多時候我們會寫成ct.update(),這樣會有問題!加了括號就是賦值結果,沒加就是賦值整個函式!千差萬別。
4、關閉網頁debug模式。注意:這個地方挺重要的,很多時候如果不關閉,ws無法注入!
5、此時在本地雙擊編譯好的檔案win64-localhost.exe,啟動服務。
6、之後在控制台注入ws,即將jsenv.js檔案中的內容全部複製貼上到控制台即可(注意有時要放開斷點)。
7、連線通訊,在控制台輸入命令var demo = new hlclient("ws:");
8、隨後繼續輸入命令:
// 註冊乙個方法 第乙個引數get_v為方法名,
// 第二個引數為函式,resolve裡面的值是想要的值(傳送到伺服器的)
// param是可傳參引數,可以忽略
demo.regaction("get_para", function (resolve, param) )
這裡就用到了引數param,param也就是需要傳值過來的json物件,因為你不可能獲取固定的歌曲id和頁碼,所以用python寫成字典,通過url編碼寫在param裡。
9、這裡為何不寫成dcpeng(json.stringify(param)...)這樣呢?因為get傳過來的就是字串,不用json轉字串了。
上圖20行的位置那是json轉字串,因為只能返回字串,返回物件的話會變成顯示"[object]"
這兩步只是控制台列印,不用管。
10、之後就可以在瀏覽器中訪問資料了,開啟** ,這是呼叫的介面 group和name填寫上面注入時候的,action是註冊的方法名,param是可選的引數,這裡續用上面的例子,網頁就是:
11、如上圖所示,我們看到了那個變化的引數v的值,直接通過requests庫可以發起get請求。
12、現在我們就可以模擬資料,進行請求傳送了,整體**如下所示。
放到json中去解析,和網頁上呈現的資料一模一樣。
下面是原網頁上的原始資料:
13、至此,請求就已經完美的完成了,如果想獲取全部網頁,構造乙個range迴圈翻頁即可實現,改變請求引數中的pageno即可。
14、如果想抓取不同的歌曲,只需要替換songid這個引數即可。
關於jsrpc工具,可以點選原文前往獲取。
小夥伴們,快快用實踐一下吧!如果在學習過程中,有遇到任何問題,歡迎加我好友,我拉你進python學習***共同**學習。
網易雲熱歌榜歌名與熱評的高頻詞抓取及詞云製作
usr bin env python3 import re import urllib.request import urllib.error import urllib.parse 進行第一次篩選的正規表示式 result re.compile pat1 findall html 用正規表示式進行...
網易雲課堂學習 rocketmq入門
rocketmq是什麼 是由阿里捐贈給apache的一款分布式 佇列模型的開源訊息中介軟體,經歷了雙十一的洗禮。rocketmq的發展史 rocketmq的特性 rocketmq 基本概念 producer 訊息生產者,負責生產訊息,一般有業務系統負責生產訊息。consumer 訊息消費者,負責消費...
網易雲課堂學習之VS相關
1 為開發好的專案檔案 如 在專案檔案screencapture中,只需保留框起來的兩個檔案即可 而且在框起來的screencapture裡的debug檔案也可以刪掉,整個檔案由75.4 mb變為33.1 kb。2 vs2013開發環境ide介紹 ps 資源檢視一般在開發mfc windows程式時...