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小爬虫-28行代码实现图形化在线翻译的主要内容,如果未能解决你的问题,请参考以下文章