7

我正在尝试在我的 Ruby on Rails 3 应用程序中使用 Google 图书搜索的 Google 数据 API,但我什至不明白如何开始。我需要什么宝石?我需要做什么才能做一些简单的事情,比如搜索标题为 Foobar 的书籍?

4

3 回答 3

12

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

它已更新为与当前的 Google API 挂钩,因此不受最近弃用的 Google Book Search API 的影响。

于 2011-12-07T22:01:35.267 回答
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之类的 URL 发出请求将返回包含图书信息的 XML。您可以使用 Nokogiri gem 来解析结果 ( http://nokogiri.org/ )。

需要注意的一件事是,要获取书籍的完整描述,您需要获取条目而不仅仅是提要结果。

以下是如何从 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
于 2010-11-16T23:41:12.890 回答
0

如果你想使用 api,我认为你将不得不使用 jruby 和他们的 java api。根据以下内容,不存在用于图书搜索的 ruby​​ api:http ://code.google.com/apis/books/docs/gdata/code.html

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

于 2010-09-09T14:53:18.347 回答