Проблемы с получением всех записей из институционального репозитория OAI-PMH с помощью Sickle
Я работал над получением всех записей из репозитория OAI-PHM из различных исследовательских институтов, используя функцию api в программе Sickle на Python. Я написал код, который выполняет последовательный сбор данных, который перебирает записи репозитория и сохраняет записи как в XML-файл, так и в SQL-данные.
Однако по какой-то причине я не могу получить все записи в репозитории - есть недостающие записи, особенно между 2017-2020 годами. Если я выполняю выборочный сбор данных по дате, используя параметр "from" в программе Sickle, я могу получить некоторые дополнительные записи, но не все из них.
Я подозреваю, что проблема связана с тем, что некоторые записи в репозитории OAI пусты и что Sickle прекращает сбор записей при обнаружении записи, не содержащей информации.
Я установил в коде необязательный параметр ignore_deleted на True, чтобы пропускать удаленные записи. Однако я не уверен, можно ли добавить дополнительный параметр, который пропускает пустую запись?
Ниже приведен фрагмент кода, который определяет последовательную сборку репозитория OAI.
import datetime
from sickle import Sickle
api_list = [ \
"https://pure.itu.dk/ws/oai", \
]
date="2020-08.01"
last_retrieval="1950.01.01"
for api in api_list:
institution = ""
institution = inst_institution(api)
record_total=0
sickle = Sickle(api)
harvest_id = uuid.uuid4() # generating a random ID for the record.
recs = sickle.ListRecords(**{'metadataPrefix': 'ddf-mxd', 'from': last_retrieval, 'until': date},ignore_deleted=True)
headers = sickle.ListIdentifiers(**{'metadataPrefix': 'ddf-mxd', 'from': last_retrieval, 'until': date},ignore_deleted=True)
for header in headers:
record_total = record_total + 1
try:
r=recs.next()