因为经常在Linux下阅读一些英文资料,而Linux下目前我还找不到什么翻译软件可用,遇到不懂的单词往往要打开Google Translate翻译。开个浏览器,new个标签页,输入网址,再输入单词。啊!我已经对这一系列事务烦不胜烦。刚好这段时间在一直在弄Python,于是便想用python做个翻译的小gadget。网上翻来覆去,实在找不到什么合适的可以下手。Google Translate的API貌似关闭了吧,想直接从网页上扒数据下来但是Google Translate的翻译是用Ajax做的,目前我真心扒不下来啊。有道在线翻译那个网页二逼成什么样我就不想多说了(连申请个key都没法子)。必应和雅虎的babelfish的翻译质量略差啊。翻来覆去最终圈定为沪江小D,虽然只有词典功能,但是够用了。方法也很简单,直接域名里添加要查询的单词就OK了。具体见代码(Python2.x):

(注:需要安装pyquery)

#!/usr/bin/env python# -*- coding: utf-8 -*-

import urllibimport sysfrom pyquery.pyquery import PyQuery   

URL = 'http://dict.hjenglish.com/app/w/'

class NoneError(Exception):pass

def tr(itext):if not itext:raise NoneErrorglobal URL     url = URL + urllib.quote(itext)    resp = urllib.urlopen(url)    html = resp.read()    resp.close()return extract_otext(html)

def extract_otext(html):    pqhtml = PyQuery(html)    pron = pqhtml('.trsf')    mean = pqhtml('#panel_comment')    rs = {}

# 提取单词发音部分    if pron:if pron.size() == 1:            s = '%s' % pron.eq(0).text()else:            s = '%s: %s; ' % (pron.eq(0).attr('title'), pron.eq(0).text())            s += '%s: %s ' % (pron.eq(1).attr('title'), pron.eq(1).text())        rs['pron'] = s

# 提取单词意义部分    if mean:        s = mean.html().replace('<br />', '').replace('&#13', '')        rs['mean'] = s

return rs

if __name__ == '__main__':print """    Welcome to Leon Hui's translator gadget!

    This gadget is based on the HJ English, so I name it hj!

    (Only words supported. =_=!)"""while True:try:            itext = raw_input('>>> ').strip()            itext = itext.split()[0] if itext else None            rs = tr(itext)except NoneError:continueexcept EOFError:print '\r'            sys.exit(0)except KeyboardInterrupt:print '\r'continueexcept IOError, e:print 'Error: %s' % econtinueelse:print rs['pron'] if rs.get('pron') else Noneprint rs['mean'] if rs.get('mean') else None

再给这份py文件做个软链。

cd /usr/local/binsudo ln -s /full/path/to/your/scrpt hjsudo chmod +x hj

好了,以后便可以直接Ctrl+Alt+T,hj,输入单词这三步完成翻译,唉,起码偶觉得方便了很多啊。

然后嘛,代码质量不敢说,哈哈,能用就行= =!

附上图片:

转载于:https://www.cnblogs.com/cassvin/archive/2012/01/26/my_dict_gadget_hj.html

利用沪江小D做个词典小工具相关推荐

  1. 利用搜搜的问问做外链小技巧

    如果一个网站内容好.用户友好性佳.外链分布广泛而且质量好,这样的网站在任何一个搜索引擎那,应该都可以得到良好的排名. 内容和用户的友好性,属于网站内部掌控的事,这部分多研究下,应该较好处理.但网站要取 ...

  2. 干洗店小程序做一个预约小程序有什么优点

    洗衣店洗鞋店为什么要开发一个下单小程序 冬季衣服厚羽绒服和大衣在家不好清洗,不少人会选择送去干洗店,为了提高竞争力也提高服务水平,不少店铺提供干洗衣物上门取送的服务,而开发小程序,不仅能大大帮助干洗店 ...

  3. 益聚星荣:网易有道、沪江小D等词典错误频现 莫让词典类APP误人子弟

    在手机APP上查单词.背单词,已成为当下大学生.中学生及英语学习爱好者的习惯,APP上的电子词典几乎取代了大部头纸质词典.但"新华视点"记者调查发现,不少动辄用户使用量过亿的英语学 ...

  4. html制作nba网页,NBA篮球_实用电脑小技巧:通俗解答html 自己动手建一个非常简单的网页_沪江英语...

    沪江小编:对于很多人来说,电脑应该算是使用频率最高的工具了,可是你真的会用电脑么?实用电脑小技巧,用最简单明了的方式给你无比有趣的电脑使用新体验. html是什么,什么是html通俗解答: 通俗的讲h ...

  5. 教师节html源码,教师节_实用电脑小技巧:通俗解答html 自己动手建一个非常简单的网页_沪江英语...

    沪江小编:对于很多人来说,电脑应该算是使用频率最高的工具了,可是你真的会用电脑么?实用电脑小技巧,用最简单明了的方式给你无比有趣的电脑使用新体验. html是什么,什么是html通俗解答: 通俗的讲h ...

  6. 沪江CCtalk杨继珩:做有温度的技术,赋予未来教育更多可能!

    2018年,实时互联网行业风头正劲.在线视频抓娃娃.直播答题撒币.狼人杀.连麦小游戏凭借超高人气,在社交.游戏.直播.电商各个领域迅速蹿红,火遍全网. 与此同时,在教育.智能硬件.无人车.互联网金融. ...

  7. 利用Python做一个漂亮小姐姐词云跳舞视频

    最近不少小伙伴在学 Python,想找个好玩的练手项目. 那今天分享一个,简单,适合新手的 Python 小项目. 以下是具体项目: 本文将以哔哩哔哩–乘风破浪视频为例,you-get下载视频. 同时 ...

  8. 【奥运功臣沪江小D】沪江小D奥运系列LOGO欣赏

    咱们滴沪江小D在这次08年奥运会上,立下了丰功伟绩! 且看沪江小D有多可爱有多灵异有多神奇吧----- 08年8月8日奥运会前一个月,偶就接到了负责设计小D奥运系列LOGO的任务, 可是迟迟没动手画, ...

  9. 沪江日语小D落户博客园~

    [hjp3]hjptype=song&player=5&file=http://podcast.hjbbs.com/podcast/20080523/2008052355348781_ ...

最新文章

  1. hbuildx打包成apk_HBuilder打包webapp为apk的方法
  2. 最新:2020年度陈嘉庚科学奖出炉!施一公获生命科学奖
  3. JNDI学习总结(1)——JNDI入门
  4. 命名实体识别遇到的问题
  5. mysql 字符串替换:处理历史稿件中的图片路径
  6. redis 什么是冷数据_阿里Java三面凉凉:微服务,Redis,JVM一个都搞不懂
  7. Android开发中的多线程编程技术
  8. 简述select语句的完整语法_SQL里的各种语句的完整语法
  9. 【JS 逆向百例】PEDATA 加密资讯以及 zlib.gunzipSync() 的应用
  10. android动画超出圆角,Android关于Glide的使用(高斯模糊、加载监听、圆角图片)
  11. 常用的JS与XML结合用法 简单示例
  12. 团队-学生成绩管理-模块开发过程
  13. 假短信截图在线生成器_10个超好玩的自动生成器
  14. 电池充电器UL1310、启动电源UL2743、电脑风扇507测试报告怎么办理?
  15. 2021北京高考成绩查询教育在线,关注 | 多省公布2021高考成绩查询时间!
  16. 社会学概论试题库【1】
  17. 羽毛球击球点与自身位置[羽球技术入门必读]
  18. 基于51单片机的音乐喷泉彩灯proteus仿真原理图PCB
  19. 使用STM8S105K4T6C 模数转换器的12通道
  20. 2022年Q3过去了,平常心最重要

热门文章

  1. SendKeys.SendWait()用法
  2. SPI—读写串行FLASH(时序中的无关项)
  3. 支付宝扫码到银行卡的收款码(隐藏卡号)静态+动态 制作教程分享
  4. Thread优先级之优先级别
  5. Linux 定期清理内存脚本
  6. Web交互设计优化方案+check list
  7. C语言的编译过程常见的错误和警告
  8. 日志分析篇---MSSQL日志分析
  9. 毕业论文管理系统用例图和活动图
  10. allegro中design size无法修改