Получение всех записей в наборе с помощью пакета 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