Проблемы с получением всех записей из институционального репозитория 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()

0 ответов

Другие вопросы по тегам