Как получить информацию о книге в формате XML/JSON из библиотеки конгресса ISBN

В Библиотеке Конгресса есть сайт для поиска книг ISBN. Простой способ получить информацию о книге - использовать URL-адрес, например:

http://lccn.loc.gov/2009019559/mods

где он возвращает структуру XML, которая может легко анализироваться. Для URL-адреса требуется уникальный номер LCCN в следующем формате:

http://lccn.loc.gov/[lccn]/mods

У меня есть партия книг с ISBN, закодированным в штрих-коде. Как я могу получить / преобразовать ISBN в LCCN, чтобы получить данные XML книги?

2 ответа

Вы можете использовать каталог SRU из Библиотеки Конгресса. Запрос будет выглядеть примерно так:

lx2.loc.gov:210/lcdb?version=1.1&operation=searchRetrieve&query=bath.isbn=[ISBN]&maximumRecords=1&recordSchema=mods

Замена [ISBN] на ISBN, который вы хотите найти

В этом ответе находится элемент LCCN. Тем не менее, каталог уже возвращает MODS, поэтому может не потребоваться что-либо делать вообще.

Вы можете использовать API Google Книг, например: https://www.googleapis.com/books/v1/volumes?q=LCCN2001051058

Ответ в формате JSON. Он включает в себя идентификаторы ISBN-10 и ISBN-13. Вам нужно будет пакетировать запросы, используя ваш любимый язык программирования, в Pharo Smalltalk с парсером PetitJson и Zinc с поддержкой HTTPS это будет:

| parser lccnCollection |
parser := PPParserResource current parserAt: PPJsonParser.
lccnCollection := #('2001051058' '2001051058').
lccnCollection do: [: lccnNumber | 
    | json jsonObject |
    json := (Url absoluteFromText: 'https://www.googleapis.com/books/v1/volumes?q=LCCN' , lccnNumber) retrieveContents contents.
    jsonObject := parser parse: json.
    " ... retrieve ISSN from jsonObject, etc ... "].

Осторожно, вам может понадобиться ключ API для отправки пакетных запросов в Google.

Другие вопросы по тегам