Ruby on Rails 3和Google图书搜索

时间:2010-09-09 02:59:24

标签: ruby-on-rails ruby ruby-on-rails-3 google-data-api google-books

我正在尝试在Ruby on Rails 3应用程序中开始使用Google Data API for Google Book Search,我甚至不了解如何开始使用。我需要什么宝石?为了做一些简单的搜索标题为Foobar的书籍,我需要做些什么?

3 个答案:

答案 0 :(得分:12)

跟进弃用问题:我刚刚发布了GoogleBooks,这是一个Ruby包装器,使用户能够以所描述的方式精确地查询书籍。

它已更新为现在的Google API,所以它不会受到最近Google图书搜索API弃用的影响。

答案 1 :(得分:6)

如果您希望使用Google图书检索有关图书的信息,可以使用他们的数据API:http://code.google.com/apis/books/docs/gdata/developers_guide_protocol.html

http://books.google.com/books/feeds/volumes?q=isbn:9780974514055之类的网址发出请求会返回带有图书信息的XML。您可以使用Nokogiri gem来解析结果(http://nokogiri.org/)。

要注意的一点是,要获得图书的完整描述,您需要获取条目而不仅仅是Feed结果。

以下是您如何从Google获取图书信息的简短示例:

require 'open-uri'
require 'nokogiri'

class Book
  attr_accessor :title, :description
  def self.from_google(title)
    book  = self.new
    entry = Nokogiri::XML(open "http://books.google.com/books/feeds/volumes?q=#{title}").css("entry id").first
    xml   = Nokogiri::XML(open entry.text) if entry
    return book unless xml

    book.title       = xml.css("entry dc|title").first.text       unless xml.css("entry dc|title").empty?
    book.description = xml.css("entry dc|description").first.text unless xml.css("entry dc|description").empty?
    book
  end
end

b = Book.from_google("Ruby")
p b

答案 2 :(得分:0)

如果你想使用api,我想你将不得不使用jruby和他们的java api。根据这个:http://code.google.com/apis/books/docs/gdata/code.html

,书籍搜索没有ruby api

要与谷歌连接,请尝试使用gdata gem。 http://code.google.com/apis/gdata/articles/gdata_on_rails.html#SetupRails