當前位置:
首頁 >
前端技术
> javascript
>内容正文
javascript
有道翻译爬虫+JS逆向
生活随笔
收集整理的這篇文章主要介紹了
有道翻译爬虫+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逆向的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 数据仓库分层DWD、DWB、DWS
- 下一篇: Android 上能提高学习工作效率的应