私のアプリケーションは、提供された ISBN、タイトル、または著者に基づいて、出版された書籍に関する情報を取得する必要があります。これは特別な要件ではありません。Amazon.com、Chegg.com などのサイトや、Book Collector などのソフトウェアでさえ、これを簡単に実行できるようです。しかし、私はそれを複製することができませんでした。
明確にするために、本のデータベース全体を検索する必要はありません。本のコレクションのように、入力された限られたサブセットのみを検索します。データベースでは、入力された本に必要なメタデータをタグ付けして、その本のサブセットを検索できるようにするだけです。したがって、スケールはここでは問題ではなく、メタデータの取得が問題です。
私が試したオプションは次のとおりです。
- アマゾンをこする。通常の Amazon ページのスクレイピングは、作成者が見つからないなどの点であまり堅牢ではありませんでした。小さなモバイル ページをスクレイピングする方が高速でしたが、抽出の堅牢性に関して同じ問題がありました。さらに、これをアプリケーションに組み込むことは、Amazon の利用規約に明らかに違反しています。
- 米国議会図書館をかき集めます。これは法的な影響が少ないように見えますが、使いやすさと堅牢性が再び問題になりました。
- ISBNdb.com API。このサービスはある程度までは無料で、必要なメタデータを適切に返しますが、毎日 500 冊以上の本に対してこれを行う必要があり、その時点で、このサービスは使用に比例してお金がかかります。同じことができる無料または 1 回限りの支払いソリューションを希望します。
- Google ブック データ API。これは必要な情報を提供しているように見えますが、利用規約で要求されているように書籍のプレビューを表示できません。
- 書籍のデータベースへのライセンスを購入します。たとえば、Ingram や Baker & Taylor などの企業は、これらのカタログを小売業者や図書館に提供しています。このソリューションは明らかに高価なので、私が見逃していたよりエレガントなソリューションがあることを願っています。しかし、そうでない場合、そして SO の誰かが特定のデータベースで良い経験をしたことがあるなら、私は喜んでそれを使います。
本の少ない他の人が上記の解決策を利用できるように、私のアプローチを詳細に説明しようとしました。しかし、私の要件を考えると、書籍のメタデータを取得することはできません。