爬蟲 js逆向 js反解析

2021-10-10 20:10:46 字數 2988 閱讀 5240

案例:分析有道翻譯:

1: 找到請求的url:

2:分析請求要攜帶的引數:請求頭,引數。

先分析出最常見的要攜帶的請求頭引數:

3:分析請求引數,哪些是改變的:

4:在js中搜尋,salt或者sign返回的地方:

5:找到**位置,分析js**:

按住ctrl + f :在js中搜尋。(圖中錯了,時間戳是13位)

6:分析總結:

e: 輸入的要翻譯的內容。

ts: 當前時間戳字串 [13位]

salt: 時間戳字串拼接上0-9 的隨機整數。

bv: 將 user-agent 經過 md5 加密之後的密文

sign: 將 「fanyideskweb」 + e + i + "nw(nmmbp%a-r6u3eun]aj"經過 md5 加密之後的密文。

import _hashlib

import hashlib

md5_str =

"python"

# 1:建立md5物件

md5 = hashlib.md5(

)print

(type

(md5))#

# 2:想物件中新增要加密的字串

md5.update(md5_str.encode())

# 3:獲取加密的結果:

ret = md5.hexdigest(

)print

(ret)

# 23eeeb4347bdd26bfc6b7ee9a3b755dd

import random

import time

import hashlib

import requests

class

youdaospider

(object):

def__init__

(self, word)

:"""初始化方法"""

self.url =

" "self.headers =

self.word = word

self.post_body =

defgenrator_post_body

(self)

:"""生成請求體字典方法"""

# 1:拿到13位的時間戳

ts =

str(

int(time.time()*

1000))

# 2: 得到salt = 13位時間戳+1位隨機值

salt = ts +

str(random.randint(0,

10))# 3: 得到sign = 兩個字串 + 被翻譯的值 + 鹽值

sign_str =

"fanyideskweb"

+ self.word + salt +

"]bjuetdhu)zqsxf-=b#7m"

# 4: 將sign_str 用md5進行加密:

md5 = hashlib.md5(

) md5.update(sign_str.encode())

sign = md5.hexdigest(

) self.post_body =

defsend_request

(self)

:"""傳送請求的方法"""

response = requests.post(self.url, headers=self.headers, data=self.post_body)

return response.json(

)def

parser_response

(self, ret_dict)

:# 從字典中提取翻譯結果

# jsonpath: $..src

ret = ret_dict[

"translateresult"][

0][0

]["tgt"

]print

("翻譯的文字:{} 翻譯的結果:{}"

.format

(self.word, ret)

)def

run(self)

:"""執行函式"""

self.genrator_post_body(

) ret_dict = self.send_request(

) self.parser_response(ret_dict)

if __name__ ==

'__main__'

: spider = youdaospider(

'媽媽'

) spider.run(

)

import js2py

js_str =

""" function func()"

.format

(func_name)

)print

(js.code)

置頂 JS 逆向爬蟲

第一篇 js 筆記 第二篇 瀏覽器外掛程式 第三篇 python執行js的常見方法 第四篇 selenium執行js 並繞過webdriver監測常見方法 第五篇 pyppeteer上執行js 並繞過webdriver監測常見方法 第六篇 pyppeteer下執行js 並繞過webdriver監測常...

js的逆向解析

過程 知道如何尋找登入的介面 知道如何確定js的位置 知道如何觀察js的執行過程 知道js的執行方法 我們要登入需要對密碼進行加密和獲取rkey欄位的值 rkey欄位的值我們直接傳送請求rkey請求就可以獲得 密碼是先反轉然後使用rsa進行加密,js 很複雜,我們希望能通過在python中執行js來...

python逆向爬蟲 python爬蟲js逆向

js逆向要想是想,要非常熟悉web的執行流程,針對不同 有不同的思路,這個部落格是針對人人直播的乙個爬取,先直接上 然後在講解,import requests import js2py import json headers session requests.session context js2p...