Мое приложение должно получать информацию о любой опубликованной книге на основе предоставленного ISBN, названия или автора. Это вряд ли уникальное требование. Такие сайты, как Amazon.com, Chegg.com и даже программное обеспечение, вроде Book Collector, похоже, могут сделать это легко. Но я не смог воспроизвести его.
Чтобы уточнить, мне не нужно искать всю базу данных книг - только ограниченное подмножество, которое было введено, как в книжной коллекции. База данных просто позволит мне пометить введенные книги необходимыми метаданными, чтобы включить поиск в этом подмножестве книг. Таким образом, масштаб не является проблемой здесь - получение метаданных.
Параметры, которые я пробовал:
- Scrape Amazon. Скребка обычных страниц Amazon была не очень надежной для таких вещей, как отсутствующие авторы, и, хотя соскабливание небольших мобильных страниц было быстрее, они поделились одними и теми же проблемами с надежностью извлечения. Кроме того, создание этого приложения является явным нарушением Условий обслуживания Amazon.
- Очистить Библиотеку Конгресса.
- API ISBNdb.com. Хотя служба бесплатна до определенной степени и хорошо выполняет возврат необходимых метаданных, мне нужно сделать это более чем для 500 книг ежедневно, в этот момент эта услуга стоит денег пропорционально использованию. Я бы предпочел бесплатное или одноразовое решение для оплаты, которое позволяет мне делать то же самое.
- API данных Google Book.. Хотя это, похоже, предоставляет необходимую мне информацию, я не могу отображать предварительный просмотр книги, поскольку их условия обслуживания требуются.
- Купить лицензию в базе данных книг. Например, такие компании, как Ingram или Baker и Taylor, предоставляют эти каталоги розничным торговцам и библиотекам. Это решение, очевидно, дорого, поэтому я надеюсь, что там будет более элегантное решение, которое я пропустил. Но если нет, и у кого-то из SO был хороший опыт работы с конкретной базой данных, я готов пойти на это.
Я попытался подробно описать свой подход, чтобы другие с меньшим количеством книг могли воспользоваться вышеупомянутыми решениями. Но, учитывая мои требования, я нахожусь на своем пути для получения метаданных книги, поэтому любые указатели очень ценятся.