py单词翻译小工具(python抓取html实现)

正好把手头以前写的脚本整理下,完善了一下,大家看看玩把。
原理很简单,都能看懂,就是发送个请求,解析下翻译结果。

使用方法:
[root@linux ~]# python smalldict.py   fish
输入: fish
----------------------------------------
n.鱼
v.捕鱼,钓鱼
[第三人称单数fishes   复数fish]

代码如下,请注意缩进:
#!/usr/bin/python
#coding:utf-8

# *************************************************
# author   :   smallfish <smallfish@live.cn>
#              http://hi.baidu.com/smallfish7788
# date     :   2008-08-28
# version :   0.1
# desc     :   返回输入单词的中文翻译
# *************************************************

# 导入sys urllib re模块相应的常量和函数
from sys import argv
from urllib import urlopen
from re import S, sub, compile

# 格式化结果 去除换行、替换空格和html标签
def format_html(s):
    s = sub("/s", '', s)
    s = sub("&nbsp;", ' ', s)
    s = sub("<[^>]*>", '', s)
    return s

# 发送查询
def search_word(word) :
    searchurl = 'http://dict.yodao.com/search?tab=chn&keyfrom=dict.top&btnG=&q='
    html = urlopen(searchurl+str(word)).read()
    # 正则匹配结果
    results = compile('<td class="attributem1web">(.*?)</td>', S).findall(html)
    # 输出结果
    print '输入:',word
    print '-' * 40
    if not results :
        print '没有查询到结果'
        return
    for result in results :
        print format_html(result)

if __name__ == '__main__' :
    # 判断是否输入单词
    if len(argv) != 2 :
        print '输入错误,缺少查询单词.'
    else :
        search_word(argv[1])
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值