本人由于英语渣,在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制作查找单词翻译的脚本的更多相关文章

  1. Python制作有道翻译小工具

    该工具主要是利用了爬虫,爬取web有道翻译的内容. 然后利用简易GUI来可视化结果. 首先我们进入有道词典的首页,并点击翻译结果的审查元素 之后request响应网页,并分析网页,定位到翻译结果. 使 ...

  2. python制作一键启动脚本

    我们的系统环境或许没有Python环境,又想使用脚本,这就要使该脚本能脱离Python环境独立运行,比如说将该脚本打包成exe可执行文件等.那么怎么做呢?你可能想到py2exe和pyinstaller ...

  3. 使用python制作ArcGIS插件(3)ArcPy的使用说明

    使用python制作ArcGIS插件(3)ArcPy的使用说明 by 李远祥 ArcPy 是一个以成功的 arcgisscripting 模块为基础并继承了 arcgisscripting 功能进而构 ...

  4. python使用百度api翻译中英文

    python使用百度api翻译中英文 写程序取变量名的时候,常常需要翻译单词,或者将中文翻译成英语.有道词典,必应词典都很好,可是...命令行习惯了还是觉得用在cmd里面调出程序使用起来也许会更爽.于 ...

  5. 使用python制作ArcGIS插件(5)其他技巧

    使用python制作ArcGIS插件(5)其他技巧 by 李远祥 使用python做插件开发,除了了解ArcToolBox工具之外,还需要在了解ArcPy的相关函数和接口.只有掌握了这些,才可以顺利的 ...

  6. 使用python制作ArcGIS插件(2)代码编写

    使用python制作ArcGIS插件(2)代码编写 by 李远祥 上一章节已经介绍了如何去搭建AddIn的界面,接下来要实现具体的功能,则到了具体的编程环节.由于使用的是python语言进行编程,则开 ...

  7. 使用python制作ArcGIS插件(1)工具介绍

    使用python制作ArcGIS插件(1)工具介绍 by 李远祥 ArcGIS从10.0开始支持addin(ArcGIS软件中又叫作加载项)的方式进行插件制作.相对于以往9.x系列,addin的无论是 ...

  8. python制作pdf电子书

    python制作pdf电子书 准备 制作电子书使用的是python的pdfkit这个库,pdfkit是 wkhtmltopdf 的Python封装包,因此在安装这个之前要安装wkhtmltopdf 安 ...

  9. 使用python制作时间戳转换工具

    使用python制作时间戳转换工具 python 时间戳转日期 日期转时间戳 前言:作为一个程序员一般情况下,json和时间戳是常用的两个工具,我咨询过很多个朋友,他们一般都是通过在线工具对json进 ...

随机推荐

  1. 《Deep Learning》(深度学习)中文版PDF免费下载

    <Deep Learning>(深度学习)中文版PDF免费下载 "深度学习"经典著作<Deep Learning>中文版pdf免费下载. <Deep ...

  2. Redis学习笔记之Redis的对象

    类型与编码: typedef struct redisObject {                unsigned type:4://类型               unsigned encod ...

  3. "软件"和"软件工程"一词最早被谁提出?

    1."softwar”:1953年Richard R.Carhart在备忘录中使用software一词2.软件工程 1968 年北大西洋公约组织在前联邦德国开会提出的 1968年秋季,NAT ...

  4. Daily Scrum - 11/24

    今天会议时,人千提出了保存用户对每个单词背的程度的事,即如何保存每个单词上次背的时间,下次应背的时间等信息,是存放在数据库里还是存在onedrive上.目前已经联系Travis咨询数据库存储方面的事. ...

  5. Mysql存储引擎federated

    Mysql数据库存储引擎federated(联盟) 意思就是把两个不同区域的数据库联系起来,以致可以访问在远程数据库的表中的数据,而不是本地的表.->专门针对远程数据库的实现->一般情况下 ...

  6. [转帖]Git数据存储的原理浅析

    Git数据存储的原理浅析 https://segmentfault.com/a/1190000016320008   写作背景 进来在闲暇的时间里在看一些关系P2P网络的拓扑发现的内容,重点关注了Ma ...

  7. GS 服务器端开启webservice 远程调试的方法

    1. 修改 安装目录下 web.config的文件. 一般目录为: C:\Program Files\GenerSoft\bscw_local\web.config 为了保证安全想把文件备份一下. 2 ...

  8. C++ main()函数及其参数

    1.首先,想想C/C++在main函数之前和之后会做些什么? 我们看看底层的汇编代码: __start: : init stack; init heap; open stdin; open stdou ...

  9. SpringBoot 1.快速搭建一个 SpringBoot Maven工程

    一.新建一个Maven工程 (1)选择创建简单MAVNE工程 (2)输入你自己的MAVEN工程的Group Id(必填).Artifact Id(必填).Version(必填).Packaging(必 ...

  10. Node.js & SSR

    Node.js & SSR nest.js https://github.com/nestjs/nest next.js 中文文档 https://nextjs.org/learn/ Grap ...