2012-12-02 11 views
9

La Biblioteca del Congresso ha un sito per cercare libri per ISBN. Un modo semplice per recuperare le informazioni del libro sta usando un URL del tipo:Come recuperare le informazioni del libro in XML/JSON dalla biblioteca del congresso tramite ISBN

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

dove restituisce una struttura XML che può analizzare facilmente. L'URL richiede un numero LCCN unica nel seguente formato:

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

ho una serie di libri che ha ISBN codificato nel codice a barre. Come posso recuperare/convertire ISBN in LCCN per recuperare i dati XML del libro?

+0

Deve essere una ricerca dal numero LCCN? Esistono siti/API che ti consentono di effettuare una ricerca in base al numero ISBN, se disponibili. Vedi http://webhole.net/2009/08/25/get-book-info-from-isbn/ – BIOSTALL

+0

Ho provato prima isbndb, ma non è completo come loc per il mio caso. Continuo a preferire il recupero dei dati dal catalogo di loc. –

risposta

1

è possibile utilizzare le API di Google Libri, ad esempio: https://www.googleapis.com/books/v1/volumes?q=LCCN2001051058

risposta è in formato JSON. Include gli identificatori ISBN-10 e ISBN-13. Si dovrà in batch le richieste utilizzando il linguaggio di programmazione preferito, in Pharo Smalltalk con PetitJson parser e zinco con il supporto HTTPS sarebbe:

| 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 ... "]. 

Attenzione potrebbe essere necessario una chiave API per effettuare richieste in batch a Google.

+0

Grazie. Forse non mi sono reso chiaro nella domanda. Sto cercando una soluzione diretta come l'URL mods di LOC che mi consente di passare ISBN come parametro. Dopo alcune prove ed errori, penso che una soluzione stia usando il servizio web z3950 da LOC. –

+2

@ChauCheeYang, se hai un secondo, potresti pubblicare la richiesta http o un link ai documenti che descrivono il metodo che hai usato per questa attività? Sono nella stessa barca in cui ti trovavi ... – duhaime

4

È possibile utilizzare il catalogo SRU dalla Library of Congress. La query sarebbe simile a questa:

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

Sostituire [ISBN] con il codice ISBN che si desidera cercare

All'interno di tale risposta è un elemento LCCN. Tuttavia, il catalogo restituisce già MODS, quindi potrebbe non essere necessario fare nulla.

+0

Sembra non funzionare per molti codici ISBN. – Geremia

+0

@Geremia forse funziona per ISBN 13 ma non per 10? – Menasheh

+0

@Menasheh Sì, forse – Geremia

Problemi correlati