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内置函数dir详解
Apr 14 Python
python分析网页上所有超链接的方法
May 08 Python
Django admin美化插件suit使用示例
Dec 12 Python
对Python中list的倒序索引和切片实例讲解
Nov 15 Python
Python异常处理例题整理
Jul 07 Python
关于Pytorch的MNIST数据集的预处理详解
Jan 10 Python
Python类的绑定方法和非绑定方法实例解析
Mar 04 Python
Python多线程实现支付模拟请求过程解析
Apr 21 Python
python多线程实现同时执行两个while循环的操作
May 02 Python
python爬虫中url管理器去重操作实例
Nov 30 Python
Python爬虫之Selenium实现关闭浏览器
Dec 04 Python
Python 中 sorted 如何自定义比较逻辑
Feb 02 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导出MySQL数据到Excel文件(fputcsv)
2011/07/03 PHP
discuz程序的PHP加密函数原理分析
2011/08/05 PHP
PHP return语句另类用法不止是在函数中
2014/09/17 PHP
Yii框架中memcache用法实例
2014/12/03 PHP
PHP中使用Imagick读取pdf并生成png缩略图实例
2015/01/21 PHP
10款实用的PHP开源工具
2015/10/23 PHP
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
JS 屏蔽按键效果与改变按键效果的示例代码
2013/12/24 Javascript
深入浅析JavaScript中的arguments对象(强力推荐)
2016/06/03 Javascript
Angularjs按需查询实例代码
2017/10/30 Javascript
Vue+Element UI+Lumen实现通用表格分页功能
2019/02/02 Javascript
vue 搭建后台系统模块化开发详解
2019/05/01 Javascript
LayUI switch 开关监听 获取属性值、更改状态的方法
2019/09/21 Javascript
javascript(基于jQuery)实现鼠标获取选中的文字示例【测试可用】
2019/10/26 jQuery
vue点击按钮实现简单页面的切换
2020/09/08 Javascript
swiper4实现移动端导航栏tab滑动切换
2020/10/16 Javascript
python实现从字符串中找出字符1的位置以及个数的方法
2014/08/25 Python
Python中的exec、eval使用实例
2014/09/23 Python
python异常和文件处理机制详解
2016/07/19 Python
Python控制Firefox方法总结
2019/06/03 Python
python GUI库图形界面开发之PyQt5多行文本框控件QTextEdit详细使用方法实例
2020/02/28 Python
Python中求对数方法总结
2020/03/10 Python
关于Python 解决Python3.9 pandas.read_excel(‘xxx.xlsx‘)报错的问题
2020/11/28 Python
matplotlib交互式数据光标实现(mplcursors)
2021/01/13 Python
复古风格的女装和装饰品:ModCloth
2017/12/29 全球购物
美国健康和保健平台:healtop
2020/07/02 全球购物
高中生期末评语
2014/01/28 职场文书
文明餐桌活动方案
2014/02/11 职场文书
普通简短的个人自我评价
2014/02/15 职场文书
就业协议书范本
2014/04/11 职场文书
我的小天地教学反思
2014/04/30 职场文书
部门年终奖分配方案
2014/05/07 职场文书
优秀党务工作者事迹材料
2014/05/07 职场文书
学校运动会广播稿范文
2014/10/02 职场文书
市级三好生竞选稿
2015/11/21 职场文书
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python