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

用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格式,直接执行,比较方便,在此用解释器执行):

附源码地址:电子词典

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

(0)

相关推荐

  • python爬虫实现中英翻译词典

    本文实例为大家分享了python爬虫实现中英翻译词典的具体代码,供大家参考,具体内容如下 通过根据某平台的翻译资源,提取出翻译信息,并展示出来,包括输入,翻译,输出三个过程,主要利用python语言实现(python3.6),抓取信息展示. import urllib.request import urllib.parse import json def en_zh(content): url = 'http://fanyi.baidu.com/v2transapi' head = {} hea

  • 利用python实现命令行有道词典的方法示例

    前言 由于一直用Linux系统,对于词典的支持特别不好,对于我这英语渣渣的人来说,当看英文文档就一直卡壳,之前用惯了有道词典,感觉很不错,虽然有网页版的但是对于全站英文的网页来说并不支持.索性自己实现一个,基于Python编写的小工具实现有道词典,思路也很简单,直接调用有道的api,解析下返回的json就ok了. 只用到了python原生的库,支持python2和python3. 示例代码 #!/usr/bin/env python # -*- coding:utf-8 -*- # API ke

  • python实现电子词典

    本文实例为大家分享了python实现电子词典的具体代码,供大家参考,具体内容如下 服务端 #!/usr/bin/env python3 from __future__ import unicode_literals # coding=utf-8 from socket import * import os import pymysql import time import sys import signal DICT_TEXT = "./dict.txt" HOST = '0.0.0.

  • 使用Python从有道词典网页获取单词翻译

    从有道词典网页获取某单词的中文解释. import re import urllib word=raw_input('input a word\n') url='http://dict.youdao.com/search?q=%s'%word content=urllib.urlopen(url) pattern=re.compile("</h2.*?</ul>",re.DOTALL) result=pattern.search(content.read()).gro

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

    用python实现了下控制台电子词典,数据来自有道,通过向有道发送http表单数据,然后将服务器返回的json数据解析得到翻译结果,代码比较简单,练练手! # coding=utf-8 # Filename: trans.py # Author: qianghaohao(CodeNutter) # Email: codenutter@foxmail.com # Program: 控制台电子词典 # import os import sys import requests import rando

  • C语言实现电子英汉词典系统

    本文实例为大家分享了C语言实现电子英汉词典系统的具体代码,供大家参考,具体内容如下 一.设计功能(文章仅供参考) a. 词条录入:即添加单词记录. b. 信息显示:将所有的单词按字母顺序显示. c. 词条修改:对已经输入的单词信息进行修改. d. 词条删除:删除某个单词记录. e. 单词查询: 输入单词英文拼写,输出该单词的中文释义. f. 信息保存:将单词信息保存到文件. g. 退出系统 二.功能展示 三.思维导图 四.程序源码 #include <stdio.h>    //引入库函数 #

  • Python基于有道实现英汉字典功能

    本文实例讲述了Python基于有道实现英汉字典功能的方法.分享给大家供大家参考.具体如下: import re,urllib aa="http://dict.youdao.com/search?tab=chn&keyfrom=dict.top&q=" print ("input q! to exit ") while 1: word=raw_input(">>>") if word=="q!"

  • 适合初学者开发的C#在线英汉词典小程序

    今天写了一个英汉词典小程序,我加了好多注释,适合初学者一起参考,哪里写的不好请帮忙指出,一起学习进步. 这里用到了,泛型,泛型字典,一些控件的操作,split的应用,数组的应用,时间间隔,linkLabel的使用. using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using

  • js实现简易的英汉词典

    本文实例为大家分享了js实现简易的英汉词典的具体代码,供大家参考,具体内容如下 一.目标 利用js实现简易的英汉词典查询功能,达到单个词汇查找的效果 二.实现步骤 1.用一个js文件保存所有英汉词典的词汇为字符串样式 2.在另一个js文件或者html页面的script里将装有词汇的文件的字符串分隔成数组,添加Map方法,并进行遍历 3.将搜索框的内容与数组元素匹配返回结果 三.代码模块 1.html部分 <div id="div1"> <input id='word'

  • C++多线程实现电子词典

    本文实例为大家分享了C++多线程实现电子词典的具体代码,供大家参考,具体内容如下 // Dictionary.cpp : 定义控制台应用程序的入口点. //vs2013编译 //字典文件:https://pan.baidu.com/s/1YHtwptaq_V8j034U9_J96A #include "stdafx.h" #include <string> #include <vector> #include <iostream> #include

  • PyQt5实现简易电子词典

    PyQt5是python中一个非常实用的GUI编程模块,功能十分强大.刚刚学完了Pyqt的编程,就迫不及待的写出了一个电子词典GUI程序.整个程序使用qt Desiner把整个gui界面做好,槽函数则自己写好的.电子词典实现了查询单词,查询历史记录,收藏和查看单词本的功能,另外为了是程序更加炫酷,还添加了一个启动界面.具体代码如下: 第一个为主程序代码,主要实现槽函数功能. from PyQt5.QtCore import pyqtSlot from PyQt5.QtWidgets import

  • asp截取指定英汉混合字符串_支持中文

    说明:本函数作用是截取指定英汉混合字符串,并保持显示长度一至.就是将一个汉字当两英文来截取. 用途:一般会用在标题显示列表,可以避免截取的字符串参插不齐的现象. 程序代码 复制代码 代码如下: '//A_strString要处理的字符串 '//A_intLen以英文字符数为准 '//A_strAddString如果A_strString有截取字符时添中的后缀,如:...,可以为空 function CutString(byval A_strString,byval A_intLen,byval

  • Python递归实现汉诺塔算法示例

    本文实例讲述了Python递归实现汉诺塔算法.分享给大家供大家参考,具体如下: 最近面试题,面试官让我5分钟实现汉诺塔算法(已然忘记汉诺塔是啥). 痛定思痛,回来查了一下汉诺塔的题目和算法.题干与实现如下: A基座有64个盘子,大在下小在上,每次移动一个盘子,每次都需要大在下小在上,全部移动到B基座,C基座为辅助基座. # -*- coding:utf-8 -*- # 汉诺塔回溯递归实现 # 假设参数中初始杆为a,借助杆为c,阶段终止杆为b # 第一步,a状态借助b移动到c # 第二步,a移动到

随机推荐