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进 ...
随机推荐
- 由Windows开发平台向Linux平台转移的一些想法
从毕业到现在已经快20年了,一直在从事Windows平台上的开发工作.刚毕业那会大约是97,98年左右,工作的平台除了Windows平台还有Dos平台,因为在学校学习时,也是从Dos开始的.因此对于从 ...
- PAT甲题题解-1039. Course List for Student (25)-建立映射+vector
博主欢迎转载,但请给出本文链接,我尊重你,你尊重我,谢谢~http://www.cnblogs.com/chenxiwenruo/p/6789157.html特别不喜欢那些随便转载别人的原创文章又不给 ...
- Daily Scrum NO.6
会议概况 这两日又是由于编译deadline和数据库课程设计使得我们的进度进行缓慢.但是项目的进程仍然在可掌控的范围之内,时间虽然紧,但是应该最终能够实现Beta版本. 这次会议我们总结了之前5个正常 ...
- akm
队名--牛肉面不要牛肉不要面 队伍成员 211406285 林志松 [队长兼前端开发] 211606368 林书浩 [系统设计] 211606357 陈远军 [UI美工] 211606335 吴沂章 ...
- 作业三:LINUX内核的启动过程
作业三:LINUX内核的启动过程 一.使用GDB跟踪内核从start_kernel到init进程启动(附实验截图) (一)使用自己的Linux系统环境搭建MenuOS的过程 下载内核源代码编译内核 c ...
- YQCB冲刺第二周第五天
今天的任务为实现由用户设置每月初始额度的功能. 昨天的任务为实现精准查账的功能. 遇到的问题为界面的布局以及精准查账按什么标准查找,最后决定按分类查账与时间查账相结合. 站立会议 任务面板
- VMware 虚拟机CentOS 7 网路连接配置 无eth0简单解决办法
个人博客:http://www.cnblogs.com/miaojinmin799/ 在前面几步基本和网上linux配置差不多,最后一步要配置eth0时出现如图所示结果使用ifconfig -a命令 ...
- win7+opencv3.0.0+vs2010 安装及配置
最近看<学习opencv>,想要跑人脸识别的例子,于是先配环境吧. 1. opencv下载: 具体下载地址,http://opencv.org/,官网太慢,百度网盘的资源链接:http: ...
- deepin 下mysql编码问题utf8的解决
deepin 下mysql编码问题utf8的解决 参考链接 http://www.ha97.com/5359.html 与之不同的地方在第二歩 二.最简单的完美修改方法,修改mysql的my.cnf文 ...
- 11th 如果重新来过
如果重新来过,我想我不会再因任何阻碍而选择中途放弃了.为了追求完美,结果做不到自己想要的程度,就备感挫败感,于是乎就求全责备,无法继续进行下去,即便你一直原地踏步,其实也就相当于是放弃了,跟不做没有什 ...