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中用Spark模块的使用教程
Apr 13 Python
Python基础教程之浅拷贝和深拷贝实例详解
Jul 15 Python
Python字符串的常见操作实例小结
Apr 08 Python
python3对接mysql数据库实例详解
Apr 30 Python
Python Flask 搭建微信小程序后台详解
May 06 Python
创建Shapefile文件并写入数据的例子
Nov 26 Python
Python 批量读取文件中指定字符的实现
Mar 06 Python
django 多数据库及分库实现方式
Apr 01 Python
python 解决selenium 中的 .clear()方法失效问题
Sep 01 Python
celery在python爬虫中定时操作实例讲解
Nov 27 Python
python实现图像高斯金字塔的示例代码
Dec 11 Python
使用OpenCV实现人脸图像卡通化的示例代码
Jan 15 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
php 伪造ip以及url来路信息方法汇总
2014/11/25 PHP
PHP实现算式验证码和汉字验证码实例
2015/03/09 PHP
php抓取网站图片并保存的实现方法
2015/10/29 PHP
WordPress中调试缩略图的相关PHP函数使用解析
2016/01/07 PHP
laravel5.4利用163邮箱发送邮件的步骤详解
2017/09/22 PHP
laravel 之 Eloquent 模型修改器和序列化示例
2019/10/17 PHP
Laravel 5.5 异常处理 &amp; 错误日志的解决
2019/10/17 PHP
jQuery 使用手册(四)
2009/09/23 Javascript
js更优雅的兼容
2010/08/12 Javascript
使用jQuery UI的tooltip函数修饰title属性的气泡悬浮框
2013/06/24 Javascript
js判断数据类型如判断是否为数组是否为字符串等等
2014/01/15 Javascript
js兼容pc端浏览器并有多种弹出小提示的手机端浮层控件实例
2015/04/29 Javascript
jquery 手势密码插件
2017/03/17 Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
2017/06/15 Javascript
用Webpack构建Vue项目的实践
2017/11/07 Javascript
js纯前端实现腾讯cos文件上传功能的示例代码
2019/05/14 Javascript
JS 遍历 json 和 JQuery 遍历json操作完整示例
2019/11/11 jQuery
JS造成内存泄漏的几种情况实例分析
2020/03/02 Javascript
跟老齐学Python之数据类型总结
2014/09/24 Python
用Python中的wxPython实现最基本的浏览器功能
2015/04/14 Python
python开发中module模块用法实例分析
2015/11/12 Python
python去除文件中重复的行实例
2018/06/29 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
Python实现的对本地host127.0.0.1主机进行扫描端口功能示例
2019/02/15 Python
Tensorflow矩阵运算实例(矩阵相乘,点乘,行/列累加)
2020/02/05 Python
使用TensorFlow搭建一个全连接神经网络教程
2020/02/06 Python
pycharm中import呈现灰色原因的解决方法
2020/03/04 Python
详解用Python爬虫获取百度企业信用中企业基本信息
2020/07/02 Python
html5 音乐播放器 audio 标签使用概述
2013/07/15 HTML / CSS
美国电子产品折扣网站:Daily Steals
2017/05/20 全球购物
什么是组件架构
2016/05/15 面试题
教育孩子心得体会
2014/01/01 职场文书
科长竞聘演讲稿
2014/05/16 职场文书
2014财务年终工作总结
2014/12/08 职场文书
nginx搭建图片服务器的过程详解(root和alias的区别)
2021/03/31 Servers
浅析MongoDB之安全认证
2021/06/26 MongoDB