2012-12-02 53 views
9

美国国会图书馆有一个通过ISBN搜索图书的网站。检索图书信息的一种简单方法是使用以下URL:如何从国会图书馆通过国际标准图书馆检索XML/JSON图书信息

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

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

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

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

+0

是否必须通过LCCN号查找?有些网站/ API允许您通过ISBN号进行查找,如果您有这些可用的话。请参阅http://webhole.net/2009/08/25/get-book-info-from-isbn/ – BIOSTALL

+0

我曾尝试过isbndb,但它不像我的情况那样完整。我仍然希望从loc目录中检索数据。 –

回答

1

您可以使用谷歌图书API,例如:https://www.googleapis.com/books/v1/volumes?q=LCCN2001051058

答案是JSON格式。它包括ISBN-10和ISBN-13标识符。您将有一批使用您喜欢的编程语言与PetitJson解析器和锌与HTTPS请求,在菲罗Smalltalk的支持将是:

| 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密钥来进行批量要求谷歌。

+0

谢谢。也许我没有在这个问题上表达清楚。我正在寻找一个像LOC的mods URL这样的直接解决方案,它允许我将ISBN作为参数。经过一些试验和错误,我认为一个解决方案是使用LOC的z3950 web服务。 –

+2

@ChauCheeYang,如果你有第二个,你可以发布http请求或链接到详细说明你用于这个任务的方法的文档吗?我与你在同一条船上... – duhaime

4

您可以使用国会图书馆的SRU目录。查询会是这个样子:

lx2.loc.gov:210/lcdb?version=1.1 &操作= searchRetrieve &查询= bath.isbn = [ISBN] & maximumRecords = 1 & recordSchema = MODS

用您想要查看的ISBN替换[ISBN]

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

+0

这似乎并不适用于许多ISBN。 – Geremia

+0

@Geremia可能适用于ISBN 13,但不适用于10? – Menasheh

+0

@Menasheh是的,也许 – Geremia