亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

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

 更新時間:2021年10月13日 15:04:35   作者:五包辣條!  
一個建筑行業(yè)的堂哥為了搞一些商業(yè)數(shù)據(jù)前前后后花了1w,辣條我半個小時就能解決的事情,這就是技術(shù)的魅力!聲明:爬取是的公開數(shù)據(jù)

爬取目標

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

image.png

工具使用

開發(fā)工具:pycharm

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

使用工具包:requests,AES,json

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

使用npm install 安裝 crypto-js​

項目思路解析

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

123.png

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

234.png

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

345.png

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

456.png

567.png

678.png

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

h(t.data) 加密位置

789.png

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

8910.png

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

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

f  = 'jo8j9wGw%6HbxfFn' # 秘鑰

m = '0123456789ABCDEF' # 偏移值

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

91011.png

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

簡易源碼分享

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進制
m = bytes(m, encoding='utf-8')
f = bytes(f, encoding='utf-8')
​# 創(chuàng)建一個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爬蟲實戰(zhàn)JS逆向AES逆向加密爬取的詳細內(nèi)容,更多關(guān)于Python爬取JS逆向AES逆向加密的資料請關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 如何用python?GUI(tkinter)寫一個鬧鈴小程序(思路詳解)

    如何用python?GUI(tkinter)寫一個鬧鈴小程序(思路詳解)

    這篇文章主要介紹了用python?GUI(tkinter)寫一個鬧鈴小程序思路詳解,涉及到tkinter一些函數(shù)控件,數(shù)據(jù)的類的封裝,本文通過實例代碼給大家介紹的非常詳細,需要的朋友可以參考下
    2021-12-12
  • Pytest框架之fixture的詳細使用教程

    Pytest框架之fixture的詳細使用教程

    這篇文章主要介紹了Pytest框架之fixture的詳細使用教程,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-04-04
  • 如何使用python操作vmware

    如何使用python操作vmware

    這篇文章主要介紹了如何使用python操作vmware,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-07-07
  • Python單元測試簡單示例

    Python單元測試簡單示例

    這篇文章主要介紹了Python單元測試,結(jié)合實例形式分析了Python單元測試的簡單定義、使用方法及相關(guān)操作注意事項,需要的朋友可以參考下
    2018-07-07
  • Python構(gòu)建一個文檔掃描器的實現(xiàn)

    Python構(gòu)建一個文檔掃描器的實現(xiàn)

    本文主要介紹了Python構(gòu)建一個文檔掃描器的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • 基于Python的身份證號碼自動生成程序

    基于Python的身份證號碼自動生成程序

    今天收到一個小需求:需要一個自動生成身份證號碼的小程序。近期用python較多,因此打算用python實現(xiàn)
    2014-08-08
  • python切片復制列表的知識點詳解

    python切片復制列表的知識點詳解

    在本篇文章里小編給大家整理的是一篇關(guān)于python切片復制列表的知識點相關(guān)內(nèi)容,有興趣的朋友們可以跟著學習下。
    2021-10-10
  • python實現(xiàn)Scrapy爬取網(wǎng)易新聞

    python實現(xiàn)Scrapy爬取網(wǎng)易新聞

    這篇文章主要介紹了python實現(xiàn)Scrapy爬取網(wǎng)易新聞,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-03-03
  • PyTorch實現(xiàn)更新部分網(wǎng)絡,其他不更新

    PyTorch實現(xiàn)更新部分網(wǎng)絡,其他不更新

    今天小編就為大家分享一篇PyTorch實現(xiàn)更新部分網(wǎng)絡,其他不更新,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python實現(xiàn)二維插值的三維顯示

    python實現(xiàn)二維插值的三維顯示

    這篇文章主要為大家詳細介紹了python實現(xiàn)二維插值的三維顯示,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2018-12-12

最新評論