一、登陸搜狗翻譯頁面,分析請求
在裡面輸入中文翻譯
可以看出,請求的位址為
2、輸入英文翻譯
綜合上述分析,當改變裡面內容時,form data(向後台傳送的資料)中to、uuid、s的值在變化,其他幾個沒有變化
二、找到請求的js
從 uuid的值 「a953132c-77de-4029-95df-d592d4cd9bfa」 可以分析出來,這個大體是 16 進製的格式,於是從下面開始找相應的演算法:
f 的加密演算法,主要是下面有一些md5的字眼,所有我大致推測應該是做的md5格式的加密。
四、構造form data 資訊
#!/usr/bin/env python
#-*- coding:utf-8 -*-
import math, random, hashlib, re,requests
def translate(content):
'''加密:var f = s("" + l + o + b + "front_9ee4f0a1102eee31d09b55e4d66931fd")
l:from
o:to
b:文字內容
'''# 判斷輸入是中文還是英文
zhpattern = re.compile(u'[\u4e00-\u9fa5]+') # 匹配中文
match = zhpattern.search(content) #判斷使用者輸入的是不是中文
if match:
o = 'en'
else:
o = 'zh-chs'
#構建uuid
m =
for i in range(9):
uuid = m[0] + m[1] + '-' + m[2] + '-' + m[3] + '-' + m[4] + '-' + ''.join(m[-3:])
#構建加密演算法
sign = '' + 'auto' + o + content + '41ee21a5ab5a13f72687a270816d1bfd' #這個是最新的字串
m = hashlib.md5()
m.update(sign.encode('utf-8'))
data =
#傳送相關請求
url = ""
headers =
res = requests.post(url=url,headers=headers,data=data).json()
print(res['data']['translate']['dit'])
# translate('hello world')
translate('我的故鄉')
五、利用tkinter元件構建視覺化視窗#!/usr/bin/env python
#-*- coding:utf-8 -*-
from tkinter import *
import math, random, hashlib, re,requests
def translate():
'''加密:var f = s("" + l + o + b + "front_9ee4f0a1102eee31d09b55e4d66931fd")
l:from
o:to
b:文字內容
'''entry1.delete(0, end)
content = entry.get()
# 判斷輸入是中文還是英文
zhpattern = re.compile(u'[\u4e00-\u9fa5]+') # 匹配中文
match = zhpattern.search(content) #判斷使用者輸入的是不是中文
if match:
o = 'en'
else:
o = 'zh-chs'
#構建uuid
m =
for i in range(9):
uuid = m[0] + m[1] + '-' + m[2] + '-' + m[3] + '-' + m[4] + '-' + ''.join(m[-3:])
#構建加密演算法
sign = '' + 'auto' + o + content + '41ee21a5ab5a13f72687a270816d1bfd'
m = hashlib.md5()
m.update(sign.encode('utf-8'))
data =
#傳送相關請求
url = ""
headers =
res = requests.post(url=url,headers=headers,data=data).json()
response = res['data']['translate']['dit']
rest.set(response)
def sougou_translate():
# 建立視窗
root = tk()
# 視窗標題
root.title("中英互譯")
# 視窗大小、小寫x
root.geometry('390x100+500+300')
# 標籤控制項
lable = label(root, text="請輸入要翻譯的內容:", font=("微軟雅黑"), fg="red")
lable.grid()
lablel1 = label(root, text="翻譯後的內容為:", font=("微軟雅黑"), fg="green")
lablel1.grid()
global rest
rest = stringvar()
# 輸入控制項
global entry
entry = entry(root, font=("微軟雅黑", 14))
entry.grid(row=0, column=1)
# 翻譯之後的結果
global entry1
entry1 = entry(root, font=("微軟雅黑", 14), textvariable=rest)
entry1.grid(row=1, column=1)
# 按鈕控制項 sticky對齊方式 n s e w - 上下左右
button = button(root, text="翻譯", font=("微軟雅黑", 13), command=translate)
button.grid(row=2, column=0, sticky=w,padx=10)
button1 = button(root, text="退出", font=("微軟雅黑", 13), command=root.quit)
button1.grid(row=2, column=1, sticky=e,padx=10)
# 訊息迴圈、顯示視窗
root.mainloop()
if __name__ == '__main__':
sougou_translate()
python 自製有道翻譯工具
一 登陸有道翻譯頁面,分析請求 綜合上述分析,當改變裡面內容時,form data 向後台傳送的資料 中salt sign ts的值在變化,其他幾個沒有變化 二 找到請求的js 鏈結位址為 四 構造form data 資訊 usr bin env python coding utf 8 import...
Python模擬搜狗翻譯傳送請求
寫乙個小功能來模擬搜狗翻譯傳送請求,讓這個小功能擁有翻譯的功能。首先開啟搜狗翻譯,然後f12或右鍵選擇檢查,找到network,再搜狗翻譯內進行一次翻譯,之後name下就出現一堆東西,如 看著大概也知道,出來translatev2 sug 2和translatev2forpicset其餘都是一些,以...
自製C C工具庫
這個文章可能沒有幫助,我就不備測試地點了啊,裡面有雞兔同籠 計算機 斐波那契數列 查詢字元 次方 分數加減法 大整數加減法 include include h include include include include include include include include includ...