web-dev-qa-db-ja.com

本のメタデータを取得する方法は?

私のアプリケーションは、提供されたISBN、タイトル、または著者に基づいて、出版された本に関する情報を取得する必要があります。これは決してユニークな要件ではありません--- Amazon.com、Chegg.comのようなサイト、そしてBookCollectorのようなソフトウェアでさえこれを簡単に行うことができるようです。しかし、私はそれを複製することができませんでした。

明確にするために、私は本のデータベース全体を検索する必要はありません---本のコレクションのように、入力された限られたサブセットのみを検索します。データベースを使用すると、入力した本に必要なメタデータをタグ付けして、その本のサブセットを検索できるようになります。したがって、ここではスケールは問題ではありません---メタデータの取得は問題です。

私が試したオプションは次のとおりです。

  1. Scrape Amazon。通常のAmazonページのスクレイピングは、作成者の欠落などに対してそれほど堅牢ではありませんでした。小さなモバイルページのスクレイピングは高速でしたが、抽出の堅牢性に関して同じ問題を共有していました。さらに、これをアプリケーションに組み込むことは、Amazonの利用規約に明らかに違反しています。
  2. 米国議会図書館をスクレイプします。これは法的な影響が少ないように見えますが、使いやすさと堅牢性が再び問題でした。
  3. ISBNdb.com API。サービスはある程度まで無料で、必要なメタデータを返すのに良い仕事をしていますが、私は毎日500冊以上の本に対してこれを行う必要があります。このサービスは使用に比例して費用がかかります。同じことができる無料または1回限りの支払いソリューションを希望します。
  4. Google Book Data API。これは必要な情報を提供しているようですが、利用規約で必要なため、書籍のプレビューを表示できません。
  5. 書籍のデータベースのライセンスを購入します。たとえば、IngramやBaker&Taylorなどの企業は、これらのカタログを小売業者や図書館に提供しています。このソリューションは明らかに高価なので、私が見逃したよりエレガントなソリューションがあることを望んでいます。しかし、そうでなくても、SOの誰かが特定のデータベースで良い経験をしたことがあるなら、私はそれを喜んで受け入れます。

私は自分のアプローチを詳細に説明して、本の数が少ない他の人が上記の解決策を利用できるようにしました。しかし、私の要件を考えると、私は本のメタデータを取得するための私の知恵の端にいるので、どんなポインタも大歓迎です。

25
Saketh

毎日同じ500冊の本を取得する必要はほとんどないため、isbndb.comから取得したデータをデータベースに保存し、本ごとに入力します。

4
akira

Amazonをスクレイピングする代わりに、アフィリエイトプログラム用に公開しているAPIを使用できます: https://affiliate-program.Amazon.com/gp/advertising/api/detail/main.html

1時間あたり約3,000のリクエストを許可し、整形式のXMLを返します。情報を表示する本へのリンクを設定する必要があり、アフィリエイトパートナーであることを表明する必要があります。

4
moritz

どうやら、多くの図書館や他の組織は、「ISBN」などの情報を機械可読目録別名 [〜# 〜] marc [〜#〜] 、あなたはそれについてのより多くの情報を見つけることができます ここ も。

検索する「正しい」用語がわかったので、発見しました WorldCat.org

たぶん、このMARC全体があなたに新しい種類のアイデアを与えるでしょう:)

1
akira

これはあなたが探しているものかもしれません。彼らは完全なダウンロードさえ提供します! https://openlibrary.org/data

0
userSteve