python 自製搜狗翻譯工具

2021-09-02 22:36:07 字數 3929 閱讀 1574

一、登陸搜狗翻譯頁面,分析請求

在裡面輸入中文翻譯

可以看出,請求的位址為

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...