目錄
**:監管平台
開發工具:pycharm
開發環境:python3.7, wi程式設計客棧ndows10
使用工具包:requests,aes,json
涉及aes對稱加密問題 需要 安裝node.js環境
使用npm install 安裝 crypto-js
確定資料 在這個網頁可以看到資料是動態返回的 但是 都是加密的 如何確定是我們需要的?
突然想到 如果我分頁 是不是會直接載入第二個頁面 www.cppcns.com然後檢視相似度 找到第乙個頁面, 我真是太聰明了
資料找到了 現在開始尋找加密 但是突然發現沒有 加密的關鍵字? 那我們通過url 下手試試 在all裡面全域性 搜尋 query/comp/list(url後面的引數)
找到這個介面 滑鼠右鍵 可以在源**檢視他
慢慢除錯 中間除錯太多了 我就不一一截圖出來了 跑到這裡 發現data 裡面的引數 和我們看到的加密一致
h(t.data)加密位置
進去h裡面 (滑鼠游標放到 h上面程式設計客棧 會顯示他的 js位址 如果沒有顯示 就是證明你還沒有執行到這裡 需要在前面打上斷點 重新整理頁面除錯)
發現這個採用aes加密演算法 使用模型cbc模式 採用填充方式為 pkcs7
aes.decrypt() # 引數說明 秘鑰 模式 偏移值
f = 'jo8j9wgw%6hbxffn' # 秘鑰
m = '0123456789abcdef' # 偏移值
證明資料推導正確 在 return r.tostring() 打上斷點
r裡面資料正常返回
import requests
from crypto.cipher import aes
import json
url = 程式設計客棧''
headers =
response = requests.get(url, headers=headers).text
f = 'jo8j9wgw%6hbxffn' # 秘鑰
m = '0123456789abcdef' # 偏移值
# 轉碼 utf-8? 位元組 16進製制
m = bytes(m, encoding='utf-8')
f = bytes(f, encoding='utf-8')
# 建立乙個aes演算法 秘鑰 模式 偏移值
cipher = aes.new(f, aes.mode_cbc, m)
# 解密
decrypt_content = cipher.decrypt(bytes.fromhex(response))
result = str(decrypt_content, encoding='utf-8')
# okcs7 填充
length = len(result) # 字串長度
unpadding = ord(result[length - 1]) # 得到最後乙個字串的ascii
result = result[0:length - unpadding]
result = json.loads(result)['data']['list'] # dupms json.dumps() dict 格式 json的
# for i in result:
print(i)
python逆向爬蟲 python爬蟲js逆向
js逆向要想是想,要非常熟悉web的執行流程,針對不同 有不同的思路,這個部落格是針對人人直播的乙個爬取,先直接上 然後在講解,import requests import js2py import json headers session requests.session context js2p...
實戰 js逆向簡單逆向
1.目標 獲取 的列表頁和詳情頁內容 2.進行 訪問,發現資訊內容是動態載入的 3.檢視json的介面,經過多次請求檢視,只有sign欄位是js加密的,其他欄位都是固定的 4.對sign欄位進行搜尋可以找到加密位置有md5,但是這次使用穩妥的笨辦法 5.在source選項卡中新增請求斷點 6.然後進...
python爬蟲之js逆向(二)
每天一更,養成好習慣從我做起。真正想做成一件事,不取決於你有多少熱情,而是看你能多久堅持。千萬別奢望光有熱情就能得償所願。今天的帶大家了解一下md5加密,目標 是有道翻譯 首先第一步開啟 我用的是google f12,檢視是否是post請求,隨便輸入乙個字,右擊檢視網頁源 ctrl f檢視是否有你想...