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生成随机数的方法
Jan 14 Python
python 专题九 Mysql数据库编程基础知识
Mar 16 Python
对numpy中array和asarray的区别详解
Apr 17 Python
Python学习_几种存取xls/xlsx文件的方法总结
May 03 Python
PyCharm专业最新版2019.1安装步骤(含激活码)
Oct 09 Python
使用python实现对元素的长截图功能
Nov 14 Python
利用python读取YUV文件 转RGB 8bit/10bit通用
Dec 09 Python
python实现字符串和数字拼接
Mar 02 Python
基于jupyter代码无法在pycharm中运行的解决方法
Apr 21 Python
Python中关于logging模块的学习笔记
Jun 03 Python
python 获取字典特定值对应的键的实现
Sep 29 Python
Python-OpenCV教程之图像的位运算详解
Jun 21 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
BBS(php &amp; mysql)完整版(五)
2006/10/09 PHP
PHP 字符截取 解决中文的截取问题,不用mb系列
2009/09/29 PHP
jQuery 打造动态下滑菜单实现说明
2010/04/15 Javascript
Javascript加载速度慢的解决方案
2014/03/11 Javascript
JS中dom0级事件和dom2级事件的区别介绍
2016/05/05 Javascript
jquery模拟多级复选框效果的简单实例
2016/06/08 Javascript
JS实现获取当前URL和来源URL的方法
2016/08/24 Javascript
JS 拦截全局ajax请求实例解析
2016/11/29 Javascript
js实现网页定位导航功能
2017/03/07 Javascript
AngularJS实现表格的增删改查(仅限前端)
2017/07/04 Javascript
微信小程序自定义模态对话框实例详解
2017/08/16 Javascript
JavaScript简单实现的仿微博留言功能示例
2019/01/17 Javascript
你不知道的 TypeScript 高级类型(小结)
2020/08/28 Javascript
用Python编写分析Python程序性能的工具的教程
2015/04/01 Python
django富文本编辑器的实现示例
2019/04/10 Python
Python对HTML转义字符进行反转义的实现方法
2019/04/28 Python
python+jinja2实现接口数据批量生成工具
2019/08/28 Python
python使用rsa非对称加密过程解析
2019/12/28 Python
python开发前景如何
2020/06/11 Python
pytorch快速搭建神经网络_Sequential操作
2020/06/17 Python
如何让IE9以下版本(ie6/7/8)认识html5元素
2013/04/01 HTML / CSS
HTML5中外部浏览器唤起微信分享功能的代码
2020/09/15 HTML / CSS
施华洛世奇巴西官网:SWAROVSKI巴西
2019/12/03 全球购物
生产车间实习自我鉴定
2013/09/23 职场文书
玩具公司的创业计划书
2013/12/31 职场文书
儿子婚宴答谢词
2014/01/09 职场文书
2014年机关植树节活动方案
2014/02/27 职场文书
生产部厂长职位说明书
2014/03/03 职场文书
优秀广告词大全
2014/03/19 职场文书
厨房领班竞聘演讲稿
2014/04/23 职场文书
干部作风整顿个人剖析材料
2014/10/06 职场文书
查摆问题整改措施范文
2014/10/11 职场文书
三严三实学习心得体会
2014/10/13 职场文书
2016大学生毕业实习心得体会
2016/01/23 职场文书
导游词之丹东鸭绿江
2019/10/24 职场文书
python 调用js的四种方式
2021/04/11 Python