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程序来判断文本的语种
Apr 07 Python
python实现的用于搜索文件并进行内容替换的类实例
Jun 28 Python
Python使用pygame模块编写俄罗斯方块游戏的代码实例
Dec 08 Python
python PIL模块与随机生成中文验证码
Feb 27 Python
python实现SMTP邮件发送功能
Jun 16 Python
Python类的动态修改的实例方法
Mar 24 Python
Python切片操作深入详解
Jul 27 Python
利用python修改json文件的value方法
Dec 31 Python
Python实现九宫格式的朋友圈功能内附“马云”朋友圈
May 07 Python
python实现Oracle查询分组的方法示例
Apr 30 Python
Python引入多个模块及包的概念过程解析
Sep 21 Python
Keras多线程机制与flask多线程冲突的解决方案
May 28 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基于自定义函数记录log日志方法
2017/07/21 PHP
浅谈PHP发送HTTP请求的几种方式
2017/07/25 PHP
PHP策略模式定义与用法示例
2017/07/27 PHP
Nigma vs Liquid BO3 第二场2.13
2021/03/10 DOTA
点图片上一页下一页翻页效果
2008/07/09 Javascript
JavaScript加强之自定义event事件
2013/09/21 Javascript
含有CKEditor的表单如何提交
2014/01/09 Javascript
ECMAScript6函数剩余参数(Rest Parameters)
2015/06/12 Javascript
javascript实现九宫格相加数值相等
2020/05/28 Javascript
通过扫描二维码打开app的实现代码
2016/11/10 Javascript
详解JS构造函数中this和return
2017/09/16 Javascript
nodejs实现连接mongodb数据库的方法示例
2018/03/15 NodeJs
React props和state属性的具体使用方法
2018/04/12 Javascript
vue cli使用融云实现聊天功能的实例代码
2019/04/19 Javascript
前端使用crypto.js进行加密的函数代码
2020/08/16 Javascript
如何在JavaScript中使用localStorage详情
2021/02/04 Javascript
[02:28]DOTA2亚洲邀请赛 LGD战队巡礼
2015/02/03 DOTA
python执行get提交的方法
2015/04/29 Python
Python中文分词工具之结巴分词用法实例总结【经典案例】
2017/04/15 Python
Python实现生成随机日期字符串的方法示例
2017/12/25 Python
python hough变换检测直线的实现方法
2019/07/12 Python
详解python3中用HTMLTestRunner.py报ImportError: No module named 'StringIO'如何解决
2019/08/27 Python
Python实现动态给类和对象添加属性和方法操作示例
2020/02/29 Python
keras绘制acc和loss曲线图实例
2020/06/15 Python
python实现感知机模型的示例
2020/09/30 Python
Python中对象的比较操作==和is区别详析
2021/02/12 Python
什么是唯一索引
2015/07/05 面试题
函授教育个人学习的自我评价
2013/12/31 职场文书
高一历史教学反思
2014/01/13 职场文书
《社戏》教学反思
2014/04/15 职场文书
高三语文复习计划
2015/01/19 职场文书
微观世界观后感
2015/06/10 职场文书
2016党校培训心得体会
2016/01/07 职场文书
教你怎么用python爬取爱奇艺热门电影
2021/05/20 Python
九大龙王魂骨,山龙王留下躯干骨,榜首死的最憋屈(被捏碎)
2022/03/18 国漫
解决 Redis 秒杀超卖场景的高并发
2022/04/12 Redis