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

Cha*_*ang 9 api isbn z39.50

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

http://lccn.loc.gov/2009019559/mods
Run Code Online (Sandbox Code Playgroud)

它返回一个可以轻松解析的XML结构.URL需要以下列格式的唯一LCCN编号:

http://lccn.loc.gov/[lccn]/mods
Run Code Online (Sandbox Code Playgroud)

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

小智 5

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

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

将 [ISBN] 替换为您要查找的 ISBN

该响应中有一个 LCCN 元素。但是,目录已经返回 MODS,因此可能根本不需要执行任何操作。


Her*_*nán 1

您可以使用 Google Books API,例如:https://www.googleapis.com/books/v1/volumes ?q=LCCN2001051058

答案是 JSON 格式。它包括 ISBN-10 和 ISBN-13 标识符。您必须使用您最喜欢的编程语言对请求进行批处理,在具有 PetitJson 解析器的 Pharo Smalltalk 和具有 HTTPS 支持的 Zinc 中,它将是:

| 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 ... "].
Run Code Online (Sandbox Code Playgroud)

请注意,您可能需要 API 密钥才能向 Google 发出批量请求。

  • @ChauCheeYang,如果您有时间,您可以发布 http 请求或详细说明您用于此任务的方法的文档链接吗?我和你在同一条船上... (2认同)