激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python爬蟲實戰JS逆向AES逆向加密爬取

Python爬蟲實戰JS逆向AES逆向加密爬取

2022-01-24 00:21五包辣條! Python

一個建筑行業的堂哥為了搞一些商業數據前前后后花了1w,辣條我半個小時就能解決的事情,這就是技術的魅力!聲明:爬取是的公開數據

爬取目標

網址:監管平臺

Python爬蟲實戰JS逆向AES逆向加密爬取

 

工具使用

開發工具:pycharm

開發環境:python3.7, Windows10

使用工具包:requests,AES,json

涉及AES對稱加密問題 需要 安裝node.js環境

使用npm install 安裝 crypto-js?

 

項目思路解析

確定數據 在這個網頁可以看到數據是動態返回的 但是 都是加密的 如何確定是我們需要的?

Python爬蟲實戰JS逆向AES逆向加密爬取

突然想到 如果我分頁 是不是會直接加載第二個頁面 然后查看相似度 找到第一個頁面, 我真是太聰明了

Python爬蟲實戰JS逆向AES逆向加密爬取

數據找到了 現在開始尋找加密 但是突然發現沒有 加密的關鍵字? 那我們通過url 下手試試 在All里面全局 搜索 query/comp/list(url后面的參數)

Python爬蟲實戰JS逆向AES逆向加密爬取

找到這個接口 鼠標右鍵 可以在源代碼查看他

Python爬蟲實戰JS逆向AES逆向加密爬取

Python爬蟲實戰JS逆向AES逆向加密爬取

Python爬蟲實戰JS逆向AES逆向加密爬取

慢慢調試 中間調試太多了 我就不一一截圖出來了 跑到這里 發現data 里面的參數 和我們看到的加密一致

h(t.data) 加密位置

Python爬蟲實戰JS逆向AES逆向加密爬取

進去h里面 (鼠標光標放到 h上面 會顯示他的 js地址 如果沒有顯示 就是證明你還沒有執行到這里 需要在前面打上斷點 刷新頁面調試)

Python爬蟲實戰JS逆向AES逆向加密爬取

發現這個采用AES加密算法 使用模型CBC模式 采用填充方式為 Pkcs7

AES.decrypt() # 參數說明 秘鑰 模式 偏移值

f= 'jo8j9wGw%6HbxfFn' # 秘鑰

m = '0123456789ABCDEF' # 偏移值

證明數據推導正確 在 return r.toString() 打上斷點

Python爬蟲實戰JS逆向AES逆向加密爬取

r里面數據正常返回

 

簡易源碼分享

import requests
from Crypto.Cipher import AES
import json?
url = 'http://jzsc.mohurd.gov.cn/api/webApi/dataservice/query/comp/list?pg=2&pgsz=15&total=0'
headers = {
  'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/93.0.4577.63 Safari/537.36 Edg/93.0.961.38'
}
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爬蟲實戰JS逆向AES逆向加密爬取的詳細內容,更多關于Python爬取JS逆向AES逆向加密的資料請關注服務器之家其它相關文章!

原文鏈接:https://blog.csdn.net/AI19970205/article/details/120184969

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 日日操夜夜透 | 免费午夜视频 | 一级观看免费完整版视频 | 久久久精品视频在线观看 | 久久99国产伦子精品免费 | 色99999| 久久激情免费视频 | 色综合777 | 国产免费黄色 | 狠狠操人人干 | 特级毛片免费 | 国产成人高潮免费观看精品 | 免费播放欧美毛片 | 黄色网址入口 | 欧美成人一二三区 | 成人一级免费视频 | 双性帝王调教跪撅打屁股 | 国产亚洲精彩视频 | 欧美精品一区二区久久久 | 美女黄网站免费观看 | 日本羞羞的午夜电视剧 | 午夜a狂野欧美一区二区 | 7777奇米成人四色影视 | chinese18 xxxx videos| 一区二区三区小视频 | 欧美女孩videos | 毛片视频网站 | 在线观看免费视频麻豆 | 欧美成人精品欧美一级乱黄 | 新久久久久久 | 国产精品久久久久久一区二区三区 | 久久最新免费视频 | 99国产精品国产免费观看 | 国产一区免费观看 | 精品在线视频播放 | 国产一级免费在线视频 | 午夜免费一区 | 久久国产精品久久久久久 | 精品国产久 | 欧美日韩精品一区二区三区不卡 | 视频一区二区三区视频 |