使用Python从有道词典网页获取单词翻译

作者:hebedich 时间:2022-12-10 21:18:03 

从有道词典网页获取某单词的中文解释。


import re
import urllib

word=raw_input('input a word\n')

url='http://dict.youdao.com/search?q=%s'%word

content=urllib.urlopen(url)

pattern=re.compile("</h2.*?</ul>",re.DOTALL)

result=pattern.search(content.read()).group()
pattern2=re.compile('<li>.*?</li>')
for i in pattern2.findall(result):
 print i.strip('<li>').strip('</li>').decode('utf-8')

再给大家分享一个命令行版的


#!/usr/bin/env python
# -*- coding: utf-8 -*-
# @Date  : 2014-04-03 21:12:16
# @Function: 有道翻译命令行版
# @Author : BeginMan

import os
import sys
import urllib
import urllib2
reload(sys)
sys.setdefaultencoding("utf-8")
import simplejson as json
import platform
import datetime

API_KEY = '******'
KEYFORM = '******'

def GetTranslate(txt):
 url = 'http://fanyi.youdao.com/openapi.do'
 data = {
 'keyfrom': KEYFORM,
 'key': API_KEY,
 'type': 'data',
 'doctype': 'json',
 'version': 1.1,
 'q': txt
 }
 data = urllib.urlencode(data)
 url = url+'?'+data
 req = urllib2.Request(url)
 response = urllib2.urlopen(req)
 result = json.loads(response.read())
 return result

def Sjson(json_data):
 query = json_data.get('query','')        # 查询的文本
 translation = json_data.get('translation','')  # 翻译
 basic = json_data.get('basic','')        # basic 列表
 sequence = json_data.get('web',[])       # 短语列表
 phonetic,explains_txt,seq_txt,log_word_explains = '','','',''

# 更多释义
 if basic:
   phonetic = basic.get('phonetic','')     # 音标
   explains = basic.get('explains',[])     # 更多释义 列表
   for obj in explains:
     explains_txt += obj+'\n'
     log_word_explains += obj+','  
 # 句子解析
 if sequence:
   for obj in sequence:
     seq_txt += obj['key']+'\n'
     values = ''
     for i in obj['value']:
       values += i+','
     seq_txt += values+'\n'

print_format = '*'*40+'\n'
 print_format += u'查询对象: %s [%s]\n' %(query,phonetic)  
 print_format += explains_txt
 print_format += '-'*20+'\n'+seq_txt
 print_format += '*'*40+'\n'
 print print_format
 choices = raw_input(u'是否写入单词本,回复(y/n):')
 if choices in ['y','Y']:
   filepath = r'/home/beginman/pyword/%s.xml' %datetime.date.today()
   if (platform.system()).lower() == 'windows':
     filepath = r'E:\pyword\%s.xml' %datetime.date.today()
   fp = open(filepath,'a+')
   file = fp.readlines()
   if not file:
     fp.write('<wordbook>\n')
     fp.write(u"""  <item>\n  <word>%s</word>\n  <trans><![CDATA[%s]]></trans>\n  <phonetic><![CDATA[[%s]]]></phonetic>\n  <tags>%s</tags>\n  <progress>1</progress>\n  </item>\n\n""" %(query,log_word_explains,phonetic,datetime.date.today()))
   fp.close()
   print u'写入成功.'

def main():
 while True:
   txt = raw_input(u'请输入要查询的文本:\n')
   if txt:
     Sjson(GetTranslate(txt))

if __name__ == '__main__':
 main()
标签:Python,翻译
0
投稿

猜你喜欢

  • php通过隐藏表单控件获取到前两个页面的url

    2023-11-16 04:00:08
  • vue中自定义指令directive的详细指南

    2024-05-28 15:46:48
  • python自动化办公操作PPT的实现

    2023-06-14 03:43:47
  • AI与Python人工智能启发式搜索概念理解

    2021-08-05 03:56:28
  • mysql分表的3种方法

    2011-01-29 16:50:00
  • IE6模拟max-width对图片缩放

    2008-03-16 14:32:00
  • 如何利用pandas工具输出每行的索引值、及其对应的行数据

    2022-02-03 04:11:23
  • IE8网页显示不正常 用”兼容性视图”搞定

    2009-03-28 11:13:00
  • 由prototype_1.3.1进入javascript殿堂-类的初探

    2008-05-22 12:44:00
  • ORACLE数据库应用开发常见问题及排除

    2010-07-26 13:17:00
  • python list 查询是否存在并且并返回下标的操作

    2023-06-20 12:05:43
  • Python中的优先队列(priority queue)和堆(heap)

    2023-11-22 05:40:03
  • ASP程序与SQL存储过程结合使用详解

    2011-03-25 10:50:00
  • Git实现克隆历史的某个版本

    2023-03-24 01:39:54
  • QingScan扫描器安装、使用小结

    2023-03-24 03:28:09
  • Oracle RMAN快速入门指南

    2010-07-18 12:50:00
  • 浅析“Rich”设计模式

    2009-03-12 12:36:00
  • MYSQL教程:MySQL Show命令

    2009-12-20 17:54:00
  • pytorch GAN生成对抗网络实例

    2022-06-30 03:41:27
  • 在Ubuntu或Debian系统的服务器上卸载MySQL的方法

    2024-01-25 17:24:55
  • asp之家 网络编程 m.aspxhome.com