【问题标题】:How to get book metadata?如何获取图书元数据?
【发布时间】:2011-03-18 06:38:36
【问题描述】:

我的应用程序需要根据提供的 ISBN、书名或作者检索任何已出版图书的相关信息。这并不是一个独特的要求——像 Amazon.com、Chegg.com 这样的网站,甚至像 Book Collector 这样的软件似乎都能够轻松地做到这一点。但我无法复制它。

为了澄清,我不需要搜索整个图书数据库——只搜索已输入的有限子集,就像在图书收藏中一样。该数据库将允许我用必要的元数据标记输入的书籍,以启用对该书籍子集的搜索。所以规模不是这里的问题——获取元数据才是。

我尝试过的选项是:

  1. 抓取亚马逊。 抓取常规亚马逊页面对于缺少作者之类的问题不是很稳健,虽然抓取较小的移动页面更快,但它们在提取的稳健性方面存在相同的问题。此外,将其构建到应用程序中显然违反了亚马逊的服务条款。
  2. 刮掉国会图书馆。虽然这似乎具有较少的法律后果,但易用性和稳健性再次成为问题。
  3. ISBNdb.com API。 虽然该服务在一定程度上是免费的,并且可以很好地返回必要的元数据,但我每天需要为超过 500 本书执行此操作,此时这项服务的成本与使用成正比。我更喜欢免费或一次性付款解决方案,让我也能做到这一点。
  4. Google Book Data API。虽然这似乎提供了我需要的信息,但我无法按照他们的服务条款的要求显示图书预览。
  5. 购买图书数据库的许可。 例如,Ingram 或 Baker & Taylor 等公司向零售商和图书馆提供这些目录。这个解决方案显然很昂贵,所以我希望有一个我错过的更优雅的解决方案。但如果不是,并且 SO 上的某个人在特定数据库方面有很好的经验,我愿意接受。

我已尝试详细描述我的方法,以便其他书籍较少的人可以利用上述解决方案。但鉴于我的要求,我在检索图书元数据方面束手无策,因此非常感谢任何指针。

【问题讨论】:

标签: database search amazon google-books


【解决方案1】:

由于您不太可能每天都检索相同的 500 本书:将从 isbndb.com 检索到的数据存储在数据库中,然后逐本书填写。

【讨论】:

  • 我想这样做,但是当我将大量(~30,000)库存加载到数据库中时,每天 500 本书的限制是一个重要的限制。将 API 组合在一起或购买对现有数据库的访问权限是理想的,然后我可以在不限制查找次数的情况下使用它。
  • 拥有如此多的项目,您似乎正在走专业路线。我怀疑任何服务都会让您基本上克隆他们的数据库而无需支付(严重)金钱。
  • 问题是输入是交错的(例如一次10,000本书,然后一段时间没有),但必须一次输入。
【解决方案2】:

看起来,许多图书馆和其他组织通过 MAChine-Readable Cataloging 又名MARC 提供诸如“ISBN”之类的信息,您可以通过here 找到更多信息好吧。

现在知道要搜索的“正确”术语我发现了WorldCat.org

也许整个 MARC 的东西给了你一种新的想法:)

【讨论】:

  • 没有合理的开放或付费但易于使用的方式来使用 MARC 记录来解决问题,因为 WorldCat 之类的网站通常需要图书馆才能访问其搜索 API。我很惊讶,因为人们会认为公开的图书目录很容易找到!
  • 所以你不能使用搜索api(worldcat.org/devnet/wiki/SearchAPIDetails)?
  • WorldCat API 使用访问密钥——我已经申请了,但如果我能找到一个独立的解决方案,那就太好了。
  • 我认为访问 worldcat API 的唯一方法是如果您是图书馆。
  • WorldCat API 通过 OCLC,oclc.org/developer/develop/web-services/… 对开发人员沙箱免费提供
【解决方案3】:

您可以使用他们为他们的会员计划公开的 API,而不是抓取亚马逊:https://affiliate-program.amazon.com/gp/advertising/api/detail/main.html

它允许每小时大约 3k 个请求并返回格式良好的 XML。它要求您设置一个指向您展示相关信息的图书的链接,并且您必须声明您是附属合作伙伴。

【讨论】:

  • 访问 API 的要求是 - 在 180 天内完成了 3 次合格销售。 - 拥有经批准的合作伙伴帐户。 -遵守员工计划运营协议。
【解决方案4】:

这可能是您正在寻找的。他们甚至提供完整的下载! https://openlibrary.org/data

【讨论】:

    猜你喜欢
    • 2012-08-19
    • 1970-01-01
    • 1970-01-01
    • 2012-09-10
    • 2022-07-09
    • 2023-03-19
    • 1970-01-01
    • 2011-06-06
    • 1970-01-01
    相关资源
    最近更新 更多