python小爬虫-28行代码实现图形化在线翻译

Posted 曲鸟

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了python小爬虫-28行代码实现图形化在线翻译相关的知识,希望对你有一定的参考价值。

一、实现效果

1.中文转英文

2.英文转中文

二、实现思路

通过分析有道翻译的前后端交互和接口传参来实现翻译效果,具体过程不再赘述。

三、环境要求

1.python3+

四、源码分享

 from urllib import request, parse
import json
import tkinter as tk
def youdao(value, result):
    request_url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule'  # 请求的翻译地址
    # 请求参数
    form_Data = {'i': value, 'from': 'AUTO', 'to': 'AUTO', 'smartresult': 'dict', 'doctype': 'json', 'version': '2.1',
                 'keyfrom': 'fanyi.web', 'typoResult': 'false', 'client': 'fanyideskweb'}
    data = parse.urlencode(form_Data).encode('utf-8')  # 格式转换
    response = request.urlopen(request_url, data)
    html = response.read().decode('utf-8')
    trans_res = json.loads(html)
    show_label = trans_res['translateResult'][0][0]['tgt'] if trans_res.get('translateResult') else ''
    result['text'] = f'{show_label}\\n\\n'
def init_form():
    form = tk.Tk()
    form.geometry("300x260")
    form.title('中英互译')
    text = tk.Text(form, width=30, height=5)
    tk.Label(form, text='在此输入待翻译内容:').grid(row=0, sticky=tk.W)
    text.grid(row=1)
    text.insert("insert", "你好,世界")
    tk.Label(form, text='翻译结果:').grid(row=2, sticky=tk.W)
    result = tk.Label(form, text='Hello,world', wraplength=200)
    result.grid(row=3)
    tk.Button(form, height=1, text='翻译', command=lambda: youdao(text.get(1.0, "end"), result)).grid(row=1, column=1)
    form.mainloop()
init_form()

五、可直接运行版下载地址

已经打包成exe文件了,Windows环境下可直接点击运行

下载地址:https://download.csdn.net/download/momoda118/20677955

实现思路和代码都很简单。

主要是需要分析有道翻译的请求接口的交互和传参。

以及使用tkinter模块做简单的图形化界面。

python是非常适合做爬虫的一门语言,得益于它语言上手简单、学习成本较其他语言低,爬虫第三方库完善、社区成熟。

所以通过python来实现爬虫是非常明智且高效的选择!

六、往期文章回顾

python-85行代码完成贪吃蛇和关卡升级:是男人就坚持到第10关!

以上是关于python小爬虫-28行代码实现图形化在线翻译的主要内容,如果未能解决你的问题,请参考以下文章

Python简易 爬虫+图形化界面

SpiderFlow(图形化爬虫)

SpiderFlow(图形化爬虫)

20行 Python 代码实现验证码识别

Python爬虫——对豆瓣图书各模块评论数与评分图形化分析

150+行Python代码实现带界面的数独游戏