日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > javascript >内容正文

javascript

有道翻译爬虫+JS逆向

發布時間:2023/12/15 javascript 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 有道翻译爬虫+JS逆向 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、首先找到有道翻譯的API鏈接

二、點擊payload,查看DATA里面需要傳輸的數據,通過兩次不同的翻譯內容,可以看到DATA中變化的值。

分別為:salt、sign、lts。

同時發現lts等于salt截取個位數字

三、全局搜索關鍵字sign,找到JS文件?

四,打斷點找我們需要的sign。

?

?發現此處r和i的值與salt、lts對應。

觀察函數可得r等于空字符串+JS時間戳

所以r與i已經獲取

?觀察得知sign通過md5這個函數生成,鼠標放在md5,可得知函數具體位置,點擊跳轉到md5.

?

可以看到md5函數,然后復制它使用我們的工具測試,發現它缺少兩個對象分別是h(e)和f(e),然后繼續查找源js文件

?找到兩個函數,并將他們復制下來

?

?函數加載成功,最后再寫一個我們的獲取sign函數,此表達式源JS已經給出

?通過我們獲取的JS代碼已經成功得到了sign。

?之后就是python爬蟲過程,直接放代碼。

import randomimport requests import execjs import time r=str(int(time.time()*1000)) i=r+str(int(random.random()*10)) print(i) print(r) e=input("請輸入要翻譯內容") node=execjs.get() ctx=node.compile(open('有道.js',encoding='utf-8').read()) funcName=f"getsign('{e}','{i}')" sign=ctx.eval(funcName) print(sign)url='https://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule' headers={ 'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.88 Safari/537.36','Referer': 'https://fanyi.youdao.com/','Cookie': 'OUTFOX_SEARCH_USER_ID_NCOO=992843693.3624797; OUTFOX_SEARCH_USER_ID="279032462@10.108.162.133"; JSESSIONID=aaahflImy7TP96ITSgOay; fanyi-ad-id=305558; fanyi-ad-closed=1; ___rl__test__cookies=1649944477314' }data={ 'i': e, 'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'client':' fanyideskweb', 'salt': i, 'sign': sign, 'lts': r, 'bv': '803d4a8f2036921cf486753934c3ae8a', 'doctype':' json', 'version': '2.1', 'keyfrom': 'fanyi.web', 'action:' :'FY_BY_REALTlME'}a=requests.post(url,headers=headers,data=data).json() print(a)

總結

以上是生活随笔為你收集整理的有道翻译爬虫+JS逆向的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。