Получение всех записей в наборе с помощью пакета Sickle

Как я могу получить доступ ко всем записям в каждом наборе, используя 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 трудно понять, и я не могу получить доступ к записям.

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
Другие вопросы по тегам