国产片侵犯亲女视频播放_亚洲精品二区_在线免费国产视频_欧美精品一区二区三区在线_少妇久久久_在线观看av不卡

腳本之家,腳本語(yǔ)言編程技術(shù)及教程分享平臺(tái)!
分類導(dǎo)航

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

服務(wù)器之家 - 腳本之家 - Python - Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

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

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

爬取目標(biāo)

網(wǎng)址:監(jiān)管平臺(tái)

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

 

工具使用

開發(fā)工具:pycharm

開發(fā)環(huán)境:python3.7, Windows10

使用工具包:requests,AES,json

涉及AES對(duì)稱加密問題 需要 安裝node.js環(huán)境

使用npm install 安裝 crypto-js?

 

項(xiàng)目思路解析

確定數(shù)據(jù) 在這個(gè)網(wǎng)頁(yè)可以看到數(shù)據(jù)是動(dòng)態(tài)返回的 但是 都是加密的 如何確定是我們需要的?

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

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

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

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

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

找到這個(gè)接口 鼠標(biāo)右鍵 可以在源代碼查看他

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

慢慢調(diào)試 中間調(diào)試太多了 我就不一一截圖出來了 跑到這里 發(fā)現(xiàn)data 里面的參數(shù) 和我們看到的加密一致

h(t.data) 加密位置

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

進(jìn)去h里面 (鼠標(biāo)光標(biāo)放到 h上面 會(huì)顯示他的 js地址 如果沒有顯示 就是證明你還沒有執(zhí)行到這里 需要在前面打上斷點(diǎn) 刷新頁(yè)面調(diào)試)

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

發(fā)現(xiàn)這個(gè)采用AES加密算法 使用模型CBC模式 采用填充方式為 Pkcs7

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

f= 'jo8j9wGw%6HbxfFn' # 秘鑰

m = '0123456789ABCDEF' # 偏移值

證明數(shù)據(jù)推導(dǎo)正確 在 return r.toString() 打上斷點(diǎn)

Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取

r里面數(shù)據(jù)正常返回

 

簡(jiǎn)易源碼分享

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'  # 偏移值
?# 轉(zhuǎn)碼  utf-8?  字節(jié) 16進(jìn)制
m = bytes(m, encoding='utf-8')
f = bytes(f, encoding='utf-8')
?# 創(chuàng)建一個(gè)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) # 字符串長(zhǎng)度
unpadding = ord(result[length - 1]) # 得到最后一個(gè)字符串的ASCII
result = result[0:length - unpadding]
result = json.loads(result)['data']['list'] # dupms json.dumps()  dict  格式 json的
# {"鍵":"值"}
?for i in result:
  print(i)

以上就是Python爬蟲實(shí)戰(zhàn)JS逆向AES逆向加密爬取的詳細(xì)內(nèi)容,更多關(guān)于Python爬取JS逆向AES逆向加密的資料請(qǐng)關(guān)注服務(wù)器之家其它相關(guān)文章!

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

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 国产www视频 | 日韩欧美一区二区三区在线观看 | 久久亚洲精品中文字幕 | 毛片免费在线 | 成人欧美一区二区三区视频xxx | 一区二区免费 | 亚洲电影天堂在线观看 | 欧美精品成人一区二区三区四区 | 国产精品久久久久久久午夜 | 国产福利视频在线 | 国产黄色小视频在线观看 | 中文字幕电影在线观看 | 日日操操 | 日本天堂在线 | 久久综合区 | 福利视频1000 | 日韩超级大片免费看国产国产播放器 | 婷婷久久五月天 | 国产免费av在线 | 欧美一级在线视频 | 国产精品一区av | 日韩美一级 | 精品一区二区三区在线视频 | 国产伦精品一区二区三区高清 | 男女全黄一级一级高潮免费看 | 成人不卡视频 | 日韩欧美一级片 | 午夜激情视频在线 | 91免费版在线观看 | 久久一区 | 亚洲综合在线播放 | 五月婷婷激情 | 久久精品不卡 | 榴莲视频成人在线观看 | 国产中文在线 | 久久精品国产一区二区三区不卡 | 在线观看欧美一区 | 精品日韩| 在线视频一区二区三区 | 国产精品一卡 | 久久日韩|