python制作查找单词翻译的脚本
本人由于英语渣,在linux底下经常看文档,但是有没有想有道词典这种软件,所以遇到不懂的单词只能手动复制粘贴在网上查找,这样就很不方便,学了python之后,就试着自己尝试下个在命令行下查找单词翻译的脚本。
在我眼里,实现上面这个要求的脚本语言分几块完成:
一是选好一个单词翻译的网站,优先选择GET方法的(代码写起来比较方便),如果是POST方法也不是没有办法,只是要自己新建一个POST请求,为此我就找到了一个用GET方法查找单词的神器网站——在线翻译_在线词典_金山词霸_爱词霸英语,用起来就很爽。
二是把对应结果那一页的html代码爬下来,然后用适当的正则表达式进行匹配,把结果记录下来。
最后就是把结果输出到cmd中。代码如下:
#!/usr/bin/env python
#-*- coding:utf-8 -*- import urllib
import sys
import re
from bs4 import BeautifulSoup URL = 'http://www.iciba.com/' while True:
try:
word = raw_input("请输入你要查找的单词(或者按CTRL+D或CTRL+C退出):")
except KeyboardInterrupt:
print "\n退出。"
sys.exit(1)
except EOFError:
print "\n退出。"
sys.exit(1)
if not word:
break
url = URL + word
#查找单词
f = urllib.urlopen(url)
reader = f.readlines()
#用正则表达式进行匹配
#这里我用BeautifulSoup进行标签的解析
soup = BeautifulSoup(''.join(reader)) #新建一个soup对象
#先进行一般释义的抓取
results1 = soup.findAll("div",{"class":"group_pos"})
if not results1:
print '不好意思,找不到你要查找的单词'
continue
#对每块进行解析
sys.stdout.write('\n') #换行
for item in results1:
aa = item.findAll("strong",{"class":"fl"})
bb = item.findAll("span",{"class":"label_list"})
#二重循环
for i in range(len(aa)):
print aa[i].contents[0],
dd = bb[i].findAll("label")
for ee in dd:
print ee.contents[0],
sys.stdout.write('\n') #分好行
#查找网络释义
results2 = soup.findAll("div",{"class":"net_paraphrase"})
print "网络释义:",
ff = results2[0].findAll("li")
for item in ff:
print item.contents[0],
sys.stdout.write('\n') #换行
sys.stdout.write('\n') #换行
唉,本来以为很快搞定,结果花了两个小时,自己还是太弱了,对python还是不够熟悉。
运行如下:
dzhwen@deng:~$ python find.py
请输入你要查找的单词(或者按CTRL+D或CTRL+C退出):banana n. 香蕉; 芭蕉属植物; 喜剧演员
网络释义: 香蕉; 香蕉甜酒; 喷鼻蕉; 芭蕉属植物 请输入你要查找的单词(或者按CTRL+D或CTRL+C退出):orange n. 桔子,橙子; [植]桔树; 橙色; 桔色
adj. 橙色的; 橘色的; 桔红色的
网络释义: 桔色; 橙色的; 桔黄; 橙 请输入你要查找的单词(或者按CTRL+D或CTRL+C退出):
退出。
转载请注明出处:http://www.cnblogs.com/sysu-blackbear/谢谢!
python制作查找单词翻译的脚本的更多相关文章
- Python制作有道翻译小工具
该工具主要是利用了爬虫,爬取web有道翻译的内容. 然后利用简易GUI来可视化结果. 首先我们进入有道词典的首页,并点击翻译结果的审查元素 之后request响应网页,并分析网页,定位到翻译结果. 使 ...
- python制作一键启动脚本
我们的系统环境或许没有Python环境,又想使用脚本,这就要使该脚本能脱离Python环境独立运行,比如说将该脚本打包成exe可执行文件等.那么怎么做呢?你可能想到py2exe和pyinstaller ...
- 使用python制作ArcGIS插件(3)ArcPy的使用说明
使用python制作ArcGIS插件(3)ArcPy的使用说明 by 李远祥 ArcPy 是一个以成功的 arcgisscripting 模块为基础并继承了 arcgisscripting 功能进而构 ...
- python使用百度api翻译中英文
python使用百度api翻译中英文 写程序取变量名的时候,常常需要翻译单词,或者将中文翻译成英语.有道词典,必应词典都很好,可是...命令行习惯了还是觉得用在cmd里面调出程序使用起来也许会更爽.于 ...
- 使用python制作ArcGIS插件(5)其他技巧
使用python制作ArcGIS插件(5)其他技巧 by 李远祥 使用python做插件开发,除了了解ArcToolBox工具之外,还需要在了解ArcPy的相关函数和接口.只有掌握了这些,才可以顺利的 ...
- 使用python制作ArcGIS插件(2)代码编写
使用python制作ArcGIS插件(2)代码编写 by 李远祥 上一章节已经介绍了如何去搭建AddIn的界面,接下来要实现具体的功能,则到了具体的编程环节.由于使用的是python语言进行编程,则开 ...
- 使用python制作ArcGIS插件(1)工具介绍
使用python制作ArcGIS插件(1)工具介绍 by 李远祥 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作.相对于以往9.x系列,addin的无论是 ...
- python制作pdf电子书
python制作pdf电子书 准备 制作电子书使用的是python的pdfkit这个库,pdfkit是 wkhtmltopdf 的Python封装包,因此在安装这个之前要安装wkhtmltopdf 安 ...
- 使用python制作时间戳转换工具
使用python制作时间戳转换工具 python 时间戳转日期 日期转时间戳 前言:作为一个程序员一般情况下,json和时间戳是常用的两个工具,我咨询过很多个朋友,他们一般都是通过在线工具对json进 ...
随机推荐
- 前端菜鸟起飞之学会ps切图
由于之前只顾着追求效率,没有学习过PS,但其实这是前端开发人员需要学会的技能之一,曾经看过一个大佬的前端经验分享说他在招聘时遇到不会切图的会直接pass掉,可见前端开发人员学会切图是多么重要.通过观看 ...
- 关于ueditor一些使用记录
1.使用的引用配置顺序 <script src="utf8-net/ueditor.config.js"></script> <script src= ...
- DICOM 协议学习笔记之 How Does DICOM Work ?
How Does DICOM Work ? DICOM有一套自己自己的模型体系,在进行具体介绍之前,首先讲解下DICOM模型: 在DICOM世界当中,所有的包括患者.检查.医学设备等都可以被视为具有不 ...
- commitizen和cz-customizable配置git commit message
起因 团队对提交的commit message格式有约定俗称的要求,但是没有一个统一的规范,导致大家提交的commit message或多或少不太一样.因此,需要一个工具来帮助大家统一commit m ...
- mui框架(一)
1.界面初始化 初始化就是把一切程序设为默认状态,把没准备的准备好. mui框架将很多功能配置都集中在mui.init方法中,要使用某项功能,只需要在mui.init方法中完成对应参数配置即可,目前支 ...
- 微软职位内部推荐-Software Engineer
微软近期Open的职位: Job Title: Software Engineer Work Location: Suzhou, China This is a once in a lifetime ...
- PAT甲题题解-1122. Hamiltonian Cycle (25)-判断路径是否是哈密顿回路
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789799.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- Java并发编程(详解wait(), notify(),sleep())
http://blog.csdn.net/luckyzhoustar/article/details/48179161
- [2017BUAA软工助教]结对项目小结
2017BUAA结对项目小结 一.作业链接 http://www.cnblogs.com/jiel/p/7604111.html 二.评分细则 1.注意事项 按时间完成并提交--正常评分 晚交一周以内 ...
- We are a team----sh_6666
团队宣言:编程,我们是玩命的,玩命,我们是认真的. 团队简介: 团队名称:sh_6666队 团队博客链接:http://www.cnblogs.com/sh-6666/ 人物简介: 剧团导演:吴小勇 ...