python爬蟲之js逆向(二)
python爬蟲之js逆向(二)
寫在前面
每天一更,養成好習慣從我做起。真正想做成一件事,不取決於你有多少熱情,而是看你能多久堅持。千萬別奢望光有熱情就能得償所願。
網站分析
今天的帶大家瞭解一下md5加密,目標網站是有道翻譯:http://fanyi.youdao.com/
首先第一步開啟網址(我用的是google)f12,檢視是否是post請求,隨便輸入一個字,右擊檢視網頁原始碼,ctrl+f檢視是否有你想要的結果,沒有那麼ok,肯定不是get請求。(可能有點片面,有錯請大佬即時指出,感激不盡)。
ok我們在這裡可以看到請求的網址加POST請求
再接著往下看
然後這是我們所需要複製的請求頭,在這可以教大家一個快速給請求頭新增格式的方式,複製請求頭到pycharm裡,然後使用ctrl+r快捷鍵開啟替換功能,並勾選Regex
替換源為:(.):\s(.)$
替換為:"$1": “$2”,
最後再ctrl+alt+L鍵,整理一下格式就行了
接下來進入正題,看好了,最最最重點的地方來嘍。
看我們下面的
看Form data 的請求引數:
salt: 15729403285424
sign: 9fc6c309e0686edbbc3262034face7da
ts: 1572940328542
bv: 6ba427a653365049d202e4d218cbb811
這四個看著都是加密過來的 我們需要一個個的來看,首先全域性搜尋salt
在f12下全域性搜尋 可以按ctrl+shift+f 最下面會出現一個搜尋框我們只需將salt複製進去,搜尋就會出現所有包含這個單詞的檔案
那麼我們點進去看一下
ok那麼我們可以清晰地看都之前的四個引數的資料都在這裡
ts 是獲取了當前的時間戳
bv是 MD5 加密
salt 隨機數
sign是 MD5 加密
可以看到bv只是請求頭的md5加密
r = “” + (new Date).getTime()
i = r + parseInt(10 * Math.random(), 10)
轉成python生成就是(通過看其他大佬寫的發現,之前還是將四個引數全部放上去):
i = str(time.time()*1000 + random.randint(1, 10))
接下來就是程式碼實現,很簡單的程式碼:
import requests
import random
import time
import hashlib
headers={
"Cookie": "OUTFOX_SEARCH_USER_ID=760236899@61.181.7.3; P_INFO=guanjingtao1@126.com|1570869772|0|other|11&15|tij&1570868005&carddav#tij&null#10#0#0|139090&0||guanjingtao1@126.com; JSESSIONID=aaa-VPo4LHTMo-fd09q4w; OUTFOX_SEARCH_USER_ID_NCOO=772066246.9827566; ___rl__test__cookies=1572245122603",
"Referer": "http://fanyi.youdao.com/",
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/76.0.3809.100 Safari/537.36",
}
data = {
"i": "look",
"client": "fanyideskweb",
"keyfrom": "fanyi.web",
}
i = str(time.time()*1000 + random.randint(1, 10))
e=input("請輸入單詞>>")
tmp="fanyideskweb" + e + i + "n%A-rKaT5fb[Gy?;N5@Tj"
sign=hashlib.md5(tmp.encode('utf-8')).hexdigest()
data['i']=e
data['salt']=i
data['sign']=sign
url = 'http://fanyi.youdao.com/translate_o?smartresult=dict&smartresult=rule'
res = requests.post(url,headers=headers, data=data)
print(res.text)
博主也是一個剛剛開始學習的小白,有錯誤希望大佬指導,希望大家一起學習進步。有想探討的問題可以評論我加你。
相關文章
- python爬蟲之JS逆向Python爬蟲JS
- python爬蟲之js逆向(三)Python爬蟲JS
- python爬蟲js逆向學習(二)Python爬蟲JS
- Python爬蟲之JS逆向分析技巧Python爬蟲JS
- python爬蟲js逆向Python爬蟲JS
- Python爬蟲進階之JS逆向入門Python爬蟲JS
- python爬蟲之JS逆向某易雲音樂Python爬蟲JS
- Python爬蟲進階之JS逆向土地市場網!Python爬蟲JS
- Python爬蟲進階之APP逆向(三)Python爬蟲APP
- python爬蟲簡單實現逆向JS解密Python爬蟲JS解密
- Python爬蟲,JS逆向之 webpack 打包站點原理與實戰Python爬蟲JSWeb
- Python爬蟲——實戰二:爬取天貓產品價格(逆向工程方法)Python爬蟲
- 網路爬蟲之記一次js逆向解密經歷爬蟲JS解密
- 14-python爬蟲之JSON操作Python爬蟲JSON
- 收藏的爬蟲逆向工程爬蟲
- 爬蟲必看,每日JS逆向之愛奇藝密碼加密,今天你練了嗎?爬蟲JS密碼加密
- Python爬蟲之BeautifulSoupPython爬蟲
- python簡單爬蟲(二)Python爬蟲
- Python爬蟲js處理Python爬蟲JS
- Python爬蟲開發(二):整站爬蟲與Web挖掘Python爬蟲Web
- 【Python學習】爬蟲爬蟲爬蟲爬蟲~Python爬蟲
- 逆向爬蟲知識學習爬蟲
- 爬蟲之-某生鮮APP加密引數逆向分析爬蟲APP加密
- 反爬蟲的四種常見方式-JS逆向方法論爬蟲JS
- Python爬蟲之BeautifulSoup庫Python爬蟲
- Python爬蟲知識點二Python爬蟲
- 【python爬蟲】python爬蟲demoPython爬蟲
- Python爬蟲之路-JS的解析Python爬蟲JS
- Python爬蟲之路-jsonpath模組Python爬蟲JSON
- 爬蟲效能:NodeJs VS Python爬蟲NodeJSPython
- Python爬蟲實戰之(二)| 尋找你的招聘資訊Python爬蟲
- Python爬蟲學習之(二)| urllib進階篇Python爬蟲
- python爬蟲之快速對js內容進行破解Python爬蟲JS
- Python爬蟲:逆向分析網易雲音樂加密引數Python爬蟲加密
- Protobuf協議逆向解析-APP爬蟲協議APP爬蟲
- Python逆向爬蟲入門教程: 千千音樂加密引數 sign 逆向解析Python爬蟲加密
- Python爬蟲——實戰一:爬取京東產品價格(逆向工程方法)Python爬蟲
- js逆向爬蟲實戰(2)--快手第三方平臺之加密引數JS爬蟲加密