python——爬取有道翻译制作一个翻译软件

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lanse_l/article/details/89237564

用tkinter创建两个text和一个button,在输入的text中输入待翻译的内容,点击按钮,程序获取输入的内容,提交表单并爬取有道翻译,获取翻译结果,显示在另一个text内

附上菜鸟工具  HTML取色器:https://c.runoob.com/front-end/5449

效果图:

程序代码:

import requests
from bs4 import BeautifulSoup
import json
import tkinter as tk
from tkinter import scrolledtext
from datetime import datetime
def trs():
    word = src.get("0.0","end")#获取编辑框数据
    word = word.lstrip()
    word = word.rstrip()#去掉两端的空格
    if len(word) == 0: #判断输入框内容是否为空
        return -1
    html = get_html(word)#获取有道翻译返回html
    res = parser_data(html)#处理数据,返回翻译结果
    tgt.delete("0.0","end")#清空原来的显示
    tgt.insert(tk.INSERT,res)#显示新翻译内容

def get_html(word):
    url = "http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule"
    head = {"User-Agent":"Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.75 Safari/537.36"}
    form = {  #提交表单-> network -> XHR
        "i":word,
        "from":"AUTO",
        "to":"AUTO",
        "smartresult":"dict",
        "client":"fanyideskweb",
        "salt":"15550368029030",
        "sign":"1a07b4fe5d7cc90cec2aefb87b5cd17f",
        "ts":"1555036802903",
        "bv":"d39271655f6b7da338c7d58f74b0fad8",
        "doctype":"json",
        "version":"2.1",
        "keyfrom":"fanyi.web",
        "action":"FY_BY_REALTlME"
    }
    res = requests.post(url,headers=head,data=form)
    return res.text

def parser_data(html):
    res = json.loads(html)
    res = res["translateResult"]
    length = len(res)
    trs = ""
    for x in range(length):
        trs = trs + res[x][0]["tgt"] +"\n"
    return trs

mainWindow = tk.Tk()
mainWindow.minsize(800,540)
mainWindow.title("翻译官")
font_text = "Calibri"
font_size = 16
src = scrolledtext.ScrolledText(mainWindow,font=(font_text,font_size),bg="#0B3B39",fg="white")
src.place(x=0,y=0,width=400,height=500)
translation = tk.Button(mainWindow,font=(font_text,font_size),text="翻译",
                        bg="orange",fg="white",command=lambda:trs())
translation.place(x=0,y=500,width=800,height=40)
tgt = scrolledtext.ScrolledText(mainWindow,font=(font_text,font_size),bg="#292A0A",fg="white")
tgt.place(x=400,y=0,width=400,height=500)
mainWindow.mainloop()

猜你喜欢

转载自blog.csdn.net/lanse_l/article/details/89237564