2012-12-02 7 views
9

Biblioteka Kongresu ma stronę do wyszukiwania książek według numeru ISBN. Prostym sposobem na sprowadzaniu Zarezerwujcie jest za pomocą adresu URL, takich jak:Jak odzyskać informacje o książkach w XML/JSON z biblioteki kongresowej ISBN

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

gdzie zwraca strukturę XML, który może analizować łatwo. URL wymaga unikalny numer LCCN w następującym formacie:

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

Mam partii książek, które zostały zakodowane w kodzie kreskowym ISBN. W jaki sposób mogę pobrać/przekonwertować ISBN do LCCN w celu pobrania danych XML książki?

+0

Czy to musi być wyszukiwanie według numeru LCCN? Istnieją witryny/interfejsy API, które umożliwiają wyszukiwanie według numeru ISBN, jeśli są dostępne. Zobacz http://webhole.net/2009/08/25/get-book-info-from-isbn/ – BIOSTALL

+0

Próbowałem wcześniej isbndb, ale nie jest tak kompletny jak loc dla mojej sprawy. Nadal wolę pobieranie danych z katalogu loc. –

Odpowiedz

1

może korzystać z API Google Books, na przykład: https://www.googleapis.com/books/v1/volumes?q=LCCN2001051058

Odpowiedź jest w formacie JSON. Zawiera zarówno identyfikatory ISBN-10 i ISBN-13. trzeba będzie partii wnioski za pośrednictwem swojego ulubionego języka programowania, w Pharo Smalltalk z PetitJson parsera i cynku z HTTPS wsparcia byłoby:

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

Strzeż może trzeba klucz API do wysyłania żądań wsadowych do Google.

+0

Dzięki. Być może nie wyraziłem się jasno w tym pytaniu. Szukam bezpośredniego rozwiązania, takiego jak adres URL modów LOC, który pozwala mi przekazać ISBN jako parametr. Po pewnym okresie prób i błędów, myślę, że rozwiązaniem jest korzystanie z usługi WWW Z3950 z LOC. –

+2

@ChauCheeYang, jeśli masz chwilę, czy możesz opublikować żądanie http lub łącze do dokumentów, które szczegółowo opisują metodę użytą w tym zadaniu? Jestem w tej samej łodzi, w której byłeś ... – duhaime

4

Możesz użyć katalogu SRU z Biblioteki Kongresu. Zapytania może wyglądać w następujący sposób:

lx2.loc.gov:210/lcdb?version=1.1 & operacja = searchRetrieve & zapytanie = bath.isbn = [ISBN] & maximumRecords = 1 & recordSchema = modów

Wymiana [ISBN] na numer ISBN, który chcesz wyszukać.

Wewnątrz tej odpowiedzi znajduje się element LCCN. Jednak katalog już zwraca MODS, więc może nie być konieczne robienie czegokolwiek.

+0

To nie wygląda na to, że działa dla wielu numerów ISBN. – Geremia

+0

@Geremia może to działa dla ISBN 13, ale nie dla 10? – Menasheh

+0

@Menasheh Tak, może – Geremia

Powiązane problemy