0

如何使用 Sickle 访问每组中的所有记录?

我可以访问这样的集合,但我不知道如何从这里下载每个集合中的每条记录:

from sickle import Sickle

sickle = Sickle('http://www.duo.uio.no/oai/request')
    sets = sickle.ListSets()
    for s in sets:
        print s

打印出来的每一组都是这样的:

<set xmlns="http://www.openarchives.org/OAI/2.0/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><setSpec>com_10852_1</setSpec><setName>Det matematisk-naturvitenskapelige fakultet</setName></set>

我还可以遍历集合以更深入:

for s in sets:
    for rec in sets:
        print rec

这会打印所有子集,所以可能从这里我可以访问各个记录,但是 API 很难理解,我无法访问记录。

4

1 回答 1

1

请务必阅读简短而温馨的教程

要获取整个 OAI-PMH 存储库,您不需要迭代集合。这是完整的代码:

from sickle import Sickle

sickle = Sickle('http://www.duo.uio.no/oai/request')
recs = sickle.ListRecords(metadataPrefix="oai_dc")
for r in recs:
    print r

如果出于某种原因您真的希望逐组收集记录,您当然可以这样做。这是完整的代码:

from sickle import Sickle

sickle = Sickle('http://www.duo.uio.no/oai/request')
sets = sickle.ListSets()
for s in sets:
    recs = sickle.ListRecords(metadataPrefix="oai_dc", set=s.setSpec)
    for r in recs:
        print r
于 2015-03-03T16:28:29.273 回答