`
koen
  • 浏览: 82126 次
  • 性别: Icon_minigender_1
  • 来自: 北京
文章分类
社区版块
存档分类
最新评论

我的第一个Ruby程序:调用金山词霸在线API查询单词

阅读更多

使用"金山词霸查词接口beta版"实现了在线查询单词功能,以下是代码:

require 'open-uri'
require 'rexml/document'
require 'cgi'
include REXML

#
# My first ruby program: Search word via Ciba web API.
#
# Refer the following stuff:
#
# 1. http://web.iciba.com/partner/api01.shtml
# 2. http://sincenow.chayv.com/?p=43
# 3. http://simohayha.iteye.com/blog/160234
# 4. http://www.ruby-forum.com/topic/58715
# 5. http://www.ruby-doc.org/core/
#

class Ciba
  def initialize(word)
    @word = word
  end

  def search
    open("http://dict-co.iciba.com/api/dictionary.php?w=" + CGI::escape(@word)) do
      |http| @result = http.read
    end
  end

  def parse
    doc = Document.new(@result)
    doc.elements.each("dict/key") { |e| puts e.text }
    doc.elements.each("dict/ps") { |e| puts "[" + e.text + "]" }
    pos_array = Array.new()
    doc.elements.each("dict/pos") { |e| pos_array.push(e.text) }
    acc_array = Array.new()
    doc.elements.each("dict/acceptation") { |e| acc_array.push(e.text) }
    pos_array.each_index { |i| puts pos_array[i] + " " + acc_array[i] }
    pos_array.clear
    doc.elements.each("dict/sent/orig") { |e| pos_array.push(e.text) }
    acc_array.clear
    doc.elements.each("dict/sent/trans") { |e| acc_array.push(e.text) }
    pos_array.each_index { |i| puts "例句" + (i+1).to_s + ":" + pos_array[i] + " " + acc_array[i] }
  end
end

ciba = Ciba.new("cool")
puts ciba.search
3.times {puts ""}
ciba.parse
 

以上程序的输出为:

 

<?xml version="1.0" encoding="UTF-8"?><dict num="219" id="219" name="219"><key>cool</key><ps>ku:l</ps><pron>http://res.iciba.com/resource/amp3/b/1/b1f4f9a523e36fd969f4573e25af4540.mp3</pron><pos>n.</pos><acceptation>凉爽, 凉爽的空气</acceptation><pos>adj.</pos><acceptation>凉爽, 冷静的, 无所顾虑的, 淡漠的</acceptation><pos>v.</pos><acceptation>使冷, 使镇定</acceptation><sent><orig>Cool.</orig><pron>http://res.iciba.com/resource/phrase_mp3/6/3/63ebe9d367b10545dfd1c2cb7448c3e4.mp3</pron><trans>很好。</trans></sent><sent><orig>That's cool!</orig><pron>http://res.iciba.com/resource/phrase_mp3/8/c/8c6332d149db7bcc1498d0af543cc82b.mp3</pron><trans>好极了!</trans></sent><sent><orig>Keep cool!</orig><pron>http://res.iciba.com/resource/phrase_mp3/b/9/b98249b38337c5088bbc660d8f872d6a.mp3</pron><trans>保持冷静!别慌!</trans></sent><sent><orig>Cool it.</orig><pron>http://res.iciba.com/resource/phrase_mp3/e/6/e68dc4981c2310e883786e7f723fa37d.mp3</pron><trans>冷静下来,别那样兴奋。</trans></sent><sent><orig>a cool autumn day; a cool room; cool summer dresses; cool drinks; a cool breeze.</orig><pron>http://res.iciba.com/resource/phrase_mp3/a/f/af885e92d18e71365cfcbb9642c4ec60.mp3</pron><trans>凉爽的秋天;凉爽的房间;凉爽的夏装;凉爽的饮料;凉爽的微风。</trans></sent></dict>



cool
[ku:l]
n. 凉爽, 凉爽的空气
adj. 凉爽, 冷静的, 无所顾虑的, 淡漠的
v. 使冷, 使镇定
例句1:Cool. 很好。
例句2:That's cool! 好极了!
例句3:Keep cool! 保持冷静!别慌!
例句4:Cool it. 冷静下来,别那样兴奋。
例句5:a cool autumn day; a cool room; cool summer dresses; cool drinks; a cool breeze. 凉爽的秋天;凉爽的房间;凉爽的夏装;凉爽的饮料;凉爽的微风。
 

 

 

 

 

 

 

1
0
分享到:
评论

相关推荐

    ruby程序:ruby selenium Web驱动程序

    在Ruby中,Selenium主要通过WebDriver接口来实现,这是一个开源的、跨平台的API,可以与多种浏览器(如Chrome、Firefox、Edge等)进行通信。 首先,让我们了解一下Ruby Selenium的基本概念: 1. **Ruby**: Ruby是...

    Ruby-FastJSONAPI一个用于Ruby对象的快速JSONAPI的序列化器

    Ruby FastJSONAPI 是一个专为Ruby对象设计的高性能JSON:API序列化库。它旨在帮助开发者以简洁、高效的方式将Ruby对象转换为符合JSON:API规范的JSON格式,极大地提高了开发效率和应用程序的性能。 JSON:API是一个...

    rubyapi:Ruby API使搜索或浏览Ruby语言API文档变得轻松快捷。

    Ruby API:轻松查找Ruby文档 Ruby API使搜索或浏览Ruby语言API文档变得轻松快捷。 为什么? 现有的Ruby文档网站很难搜索,也无法在移动设备上阅读。 Ruby API提供了受启发的即时搜索结果,以及易于在任何大小的...

    Ruby.Programming_向Ruby之父学程序设计(第2版)

    《Ruby Programming:向Ruby之父学程序设计(第2版)》是为了让完全没有程序设计经验的读者也能灵活地使用Ruby,因此书中详细地说明了各种知识。从程序所需要的变量、常数、方法、类、控制结构等语法的说明,到类的主要...

    Ruby API 帮助文档

    Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档Ruby API 帮助文档

    Sketch Up Ruby API by Sugar.pdf

    Sketch Up Ruby API by Sugar 是一份关于 SketchUp 的 Ruby API 文档,用于帮助开发者使用 Ruby 语言开发 SketchUp 插件和应用程序。该文档提供了详细的 API 参考手册,涵盖了 SketchUp 的各个方面,包括应用程序...

    ruby API资料

    Ruby API资料是一组重要的开发资源,它为使用Ruby编程语言的开发者提供了详尽的文档和接口信息。在本文中,我们将深入探讨Ruby API的核心概念、关键特性以及如何利用这些资料来提升开发效率。 Ruby是一种面向对象的...

    Ruby-云片短息ruby服务器端api

    总之,"云片短息Ruby服务器端API"是一个方便的工具,它让Ruby开发者能轻松地在服务器端集成短信服务,实现诸如验证码发送、用户通知等功能。通过理解和熟练使用这个API,你可以提升应用的功能性和用户体验。

    ruby中英文api

    Rails框架是Ruby的一个重要应用,它是一个基于MVC(模型-视图-控制器)架构的Web开发框架,简化了Web应用的开发过程。学习Rails API,需要了解路由、控制器、模型、视图、ActiveRecord ORM(对象关系映射)以及Rails...

    Ruby API 帮助文档.zip

    1. **Ruby基础**: Ruby是一种面向对象的动态编程语言,强调简洁、优雅的语法。它的核心概念包括类、对象、方法、变量(局部、实例、类和全局)以及控制结构(如if、case、循环等)。 2. **类与对象**: Ruby中的所有...

    ruby api html

    Ruby 1.8.6 是 Ruby 的一个旧版本,发布于2009年。在那个时期,Ruby 社区正在快速发展,许多流行框架如 Ruby on Rails 正在崛起。这个版本的 API 文档对于仍在使用或研究老版本 Ruby 的开发者来说尤其重要,因为它...

    ruby on rails api

    Ruby on Rails(简称Rails)是一种基于Ruby编程语言的开源Web应用程序框架,专为敏捷开发而设计,强调简洁的代码和“约定优于配置”的原则。它主要用于构建数据驱动的Web应用,借助于MVC(Model-View-Controller)...

    Ruby API Docs帮助文档

    Ruby API Docs是针对Ruby编程语言的一份详尽的官方文档,它为开发者提供了关于Ruby标准库和核心类库的详细信息。这份文档包含了1.8.7和1.9.2两个版本,这两个版本在Ruby的发展历程中具有重要的地位。Ruby API Docs...

    Ruby-JSONAPIResources提供了一个框架来开发一个符合JSONAPI规范的服务器

    Ruby-JSONAPIResources 是一个基于 Ruby 的框架,专门用于构建遵循 JSON API 规范的服务器端应用。JSON API 是一种标准化的数据交换格式,它旨在提高客户端与服务器之间的数据交互效率和可读性,广泛应用于RESTful ...

    rubyzip:官方Rubyzip存储库

    如果任何需要旧版rubyzip的第三方gem出现问题,则可以使用以下解决方法: gem 'rubyzip' , '&gt;= 1.0.0' # will load new rubyzip version gem 'zip-zip' # will load compatibility for old rubyzip API. 要求 Ruby...

    curso_tour_of_heroes_api:Ruby on Rails作为API课程-源码

    英雄之旅API Ruby on Rails 6课程作为创建Heroes CRUD的API。 该存储库是YouTube 的。 Ruby版本2.7.2 Rails版本6.1.x 数据库SQLite3(dev)/ PostgreSQL(产品)运行项目的初始设置# clone the projectgit clone ...

    Ruby-使用百度地图API进行地址定位坐标坐标定位地址名称定位地址

    在Ruby开发中,有时我们需要将地址转换为经纬度坐标,或者根据坐标反向查询地址,这时可以利用百度地图API来实现。本篇文章将详细介绍如何在Ruby中使用百度地图API进行地址定位、坐标定位以及名称定位。 首先,我们...

    ruby 最新 安装文件 与 API

    标题中的"ruby 最新 安装文件"指的是Ruby的最新版本安装程序,这通常是针对特定操作系统的,比如在描述中提到的"ruby window 版本安装文件",是指适用于Windows平台的Ruby安装程序。RubyInstaller是为Windows用户...

    ruby小程序

    1. 面向对象:Ruby是一种纯面向对象的语言,每一个数据类型都是一个对象,包括基本类型如整数、字符串和布尔值。这意味着你可以对任何对象进行方法调用,这极大地增强了代码的灵活性和可扩展性。 2. 动态类型:在...

Global site tag (gtag.js) - Google Analytics