如何通过ISBN从国会图书馆检索XML / JSON中的书籍信息

时间:2012-12-02 07:39:29

标签: api isbn z39.50

国会图书馆有一个按ISBN搜索图书的网站。检索书籍信息的一种简单方法是使用以下网址:

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

返回可以轻松解析的XML结构。 URL需要使用以下格式的唯一LCCN编号:

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

我有一批用条形码编码的ISBN。如何检索/转换ISBN到LCCN以检索图书的XML数据?

2 个答案:

答案 0 :(得分:4)

您可以使用美国国会图书馆的SRU目录。查询看起来像这样:

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

用您要查找的ISBN替换[ISBN]

在该响应中是LCCN元素。但是,目录已经返回MODS,因此可能没有必要做任何事情。

答案 1 :(得分:1)

您可以使用Google图书API,例如: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发送批量请求。