使用爬蟲寫一個簡易的翻譯器+圖像界面+python

翻譯器+圖像界面+python

1.效果圖如下:

在這裏插入圖片描述

2.代碼實現

import tkinter
import random
import requests
import request
import urllib
from  urllib import request,parse
import time,json,random,hashlib
win = tkinter.Tk()

def pachong():
    try:
        url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
        data = {}

        u = 'fanyideskweb'
        d = content
        f = str(int(time.time() * 1000) + random.randint(1, 10))
        c = 'rY0D^0\'nM0}g5Mm1z%1G4'

        sign = hashlib.md5((u + d + f + c).encode('utf-8')).hexdigest()

        data['i'] = content  # 需要翻譯的內容
        data['from'] = 'AUTO'
        data['to'] = 'AUTO'
        data['smartresult'] = 'dict'
        data['client'] = 'fanyideskweb'
        data['salt'] = f
        data['sign'] = sign
        data['doctype'] = 'json'
        data['version'] = '2.1'
        data['keyfrom'] = 'fanyi.web'
        data['action'] = 'FY_BY_CL1CKBUTTON'
        data['typoResult'] = 'true'
        data = parse.urlencode(data).encode('utf-8')
        req = request.Request(url, data=data)
        response = request.urlopen(req)

        res = response.read().decode('utf-8')
        res = json.loads(res)
        res = res["translateResult"]
        return res[0][0]['tgt']
    except:
        print("cuowu")

def eBtn(event):

    global content
    content = entry_w.get()
    entry_r.config(entry_r,text = content)
    entry_r.delete(0,80)
    entry_r.insert(0,str(pachong()))
    # pachong()


if __name__ == "__main__":
    label_val_q = tkinter.Label(win,width = "80")
    label_val_q.pack(side = "top")
    label_val_q.config(label_val_q,text = "請輸入要翻譯的文本")
    entry_w = tkinter.Entry(win,width = "80")
    entry_w.pack(side = "top")
    btn = tkinter.Button(win, text="翻譯")
    btn.pack(side = "top")
    btn.bind('<Button-1>',eBtn)

    label_val_q = tkinter.Label(win,width = "80")
    label_val_q.pack(side = "top")
    label_val_q.config(label_val_q,text = "翻譯爲:")
    entry_r = tkinter.Entry(win,width = "80")
    entry_r.pack(side = "top")
    entry_r.bind('<Return>',eBtn)
    win.mainloop()




發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章