python控制台英汉汉英电子词典


Posted in Python onApril 23, 2020

用python实现了下控制台电子词典,数据来自有道,通过向有道发送http表单数据,然后将服务器返回的json数据解析得到翻译结果,代码比较简单,练练手!

# coding=utf-8
# Filename: trans.py
# Author: qianghaohao(CodeNutter)
# Email: codenutter@foxmail.com
# Program: 控制台电子词典
#
import os
import sys
import requests
import random
import json
# import chardet # 第三方模块检查字符串编码,用于调试
from requests.exceptions import ConnectionError, Timeout
# os.system('set PYTHONIOENCODING=UTF-8')
def GetHelp():
 U'''
 GNU trans 1.0
  By qianghaohao(CodeNutter)
 Usage: trans [OPTION] [statements]
 --version 版本信息
 --help 使用帮助
 Example: trans campus
  trans --version
  trans --help
 '''
 pass
 
if (len(sys.argv) < 2):
 print '''
  trans: missing OPTION
  Usage: trans [OPTION] [statements]
  Try 'trans --help' for more details!
  '''
 sys.exit(1)
if sys.argv[1].startswith('--'):
 option = sys.argv[1][2:]
 if option == 'version':
 print 'trans: Version 1.0'
 elif option == 'help':
 print GetHelp.__doc__
 else:
 print '''
  Unknown option!
  Try 'trans --help' for more options!
  '''
 sys.exit(2)
else:
 to_be_trans = ' '.join(sys.argv[1:]).decode('GB2312').encode('utf-8')
 
 # print chardet.detect(to_be_trans) # 第三方模块检查字符串编码,用于调试
 # --------有道翻译表单数据--------
 data={}
 data['type']='AUTO'
 data['i']=to_be_trans
 data['doctype']='json'
 data['xmlVersion']='1.8'
 data['keyfrom']='fanyi.web'
 data['ue']='UTF-8'
 data['action']='FY_BY_CLICKBUTTON'
 data['typoResult']='true'
 
 youdao_url = 'http://fanyi.youdao.com/translate?smartresult=dict&smartresult=rule&smartresult=ugc&sessionFrom=dict2.index'
 
 # ---------- http报头:用户代理 ----------------
 USER_AGENTS = (
 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10.7; rv:11.0) Gecko/20100101 Firefox/11.0',
 'Mozilla/5.0 (X11; Ubuntu; Linux x86_64; rv:22.0) Gecko/20100 101 Firefox/22.0',
 'Mozilla/5.0 (Windows NT 6.1; rv:11.0) Gecko/20100101 Firefox/11.0',
 ('Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) '
  'Chrome/19.0.1084.46 Safari/536.5'),
 ('Mozilla/5.0 (Windows; Windows NT 6.1) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46'
  'Safari/536.5')
 )
 # --------- 模拟手工请求:随机切换用户代理 ---------
 headers = {'User-Agent':random.choice(USER_AGENTS)}
 try:
 r = requests.post(youdao_url, timeout=10, headers=headers, data=data)
 except ConnectionError:
 print 'Network connection failed!'
 sys.exit(1)
 except Timeout:
 print 'request timeout!'
 sys.exit(1)
 
 result = r.json()
 print result['translateResult'][0][0]['tgt'].encode(sys.stdout.encoding)

使用示例(如果感兴趣的朋友可以用pyinstaller工具将py源码转换成exe格式,直接执行,比较方便,在此用解释器执行): 

python控制台英汉汉英电子词典

附源码地址:电子词典

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python升级提示Tkinter模块找不到的解决方法
Aug 22 Python
Python开发的HTTP库requests详解
Aug 29 Python
用TensorFlow实现lasso回归和岭回归算法的示例
May 02 Python
Python基础之循环语句用法示例【for、while循环】
Mar 23 Python
PyCharm+Qt Designer+PyUIC安装配置教程详解
Jun 13 Python
Python使用python-docx读写word文档
Aug 26 Python
python程序 线程队列queue使用方法解析
Sep 23 Python
python双向链表原理与实现方法详解
Dec 03 Python
python读取Kafka实例
Dec 23 Python
用Python生成HTML表格的方法示例
Mar 06 Python
如何基于Python代码实现高精度免费OCR工具
Jun 18 Python
Python numpy大矩阵运算内存不足如何解决
Nov 19 Python
测试、预发布后用python检测网页是否有日常链接
Jun 03 #Python
Python中的CURL PycURL使用例子
Jun 01 #Python
Python实现多线程下载文件的代码实例
Jun 01 #Python
python使用在线API查询IP对应的地理位置信息实例
Jun 01 #Python
pip 错误unused-command-line-argument-hard-error-in-future解决办法
Jun 01 #Python
2款Python内存检测工具介绍和使用方法
Jun 01 #Python
使用Python的Supervisor进行进程监控以及自动启动
May 29 #Python
You might like
thinkphp数据查询和遍历数组实例
2014/11/28 PHP
实现laravel 插入操作日志到数据库的方法
2019/10/11 PHP
JS中confirm,alert,prompt函数区别分析
2011/01/17 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
Js实现动态添加删除Table行示例
2014/04/14 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
node.js中的require使用详解
2014/12/15 Javascript
javascript中使用new与不使用实例化对象的区别
2015/06/22 Javascript
深入理解jQuery3.0的domManip函数
2016/09/01 Javascript
微信小程序 input输入框详解及简单实例
2017/01/10 Javascript
Vue组件开发初探
2017/02/14 Javascript
jQuery获取table下某一行某一列的值实现代码
2017/04/07 jQuery
BootStrap表单控件之复选框checkbox和单选择按钮radio
2017/05/23 Javascript
react-router实现跳转传值的方法示例
2017/05/27 Javascript
Vue.js 中的实用工具方法【推荐】
2019/07/04 Javascript
使用apifm-wxapi快速开发小程序过程详解
2019/08/05 Javascript
vue 获取及修改store.js里的公共变量实例
2019/11/06 Javascript
JS PHP字符串截取函数实现原理解析
2020/08/29 Javascript
json.stringify()与json.parse()的区别以及用处
2021/01/25 Javascript
Django内容增加富文本功能的实例
2017/10/17 Python
Python学习笔记之错误和异常及访问错误消息详解
2019/08/08 Python
Python统计分析模块statistics用法示例
2019/09/06 Python
python通过matplotlib生成复合饼图
2020/02/06 Python
Python模块/包/库安装的六种方法及区别
2020/02/24 Python
python3 中时间戳、时间、日期的转换和加减操作
2020/07/14 Python
Python3爬虫中pyspider的安装步骤
2020/07/29 Python
Marks & Spencer爱尔兰:英国马莎百货
2016/04/20 全球购物
大学毕业自我鉴定范文
2014/02/03 职场文书
春节联欢会策划方案
2014/05/16 职场文书
学习优秀党务工作者先进事迹材料思想报告
2014/09/17 职场文书
2014年资料员工作总结
2014/11/18 职场文书
2015年党员创先争优承诺书
2015/01/22 职场文书
赔偿协议书
2015/01/27 职场文书
2015医德医风个人工作总结
2015/04/02 职场文书
巾帼建功标兵先进事迹材料
2016/02/29 职场文书
docker compose 部署 golang 的 Athens 私有代理问题
2022/04/28 Servers