我一直致力于使用Python镰刀程序中的api函数从各个研究机构的OAI-PHM存储库中检索所有记录。我已经编写了一段代码,它执行一次连续的捕获,迭代存储库的记录,并将记录保存为XML文件以及SQL数据
然而,由于某些原因,我无法检索存储库中的所有记录,尤其是2017-2020年间的记录缺失。如果我使用镰刀程序中的“from参数”按日期执行选择性收割,我可以检索一些附加记录,但不是全部记录
我怀疑问题是由于OAI存储库中的一些记录是空的,而镰刀在遇到不包含任何信息的记录时会停止采集记录
我在代码中将可选参数“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()
目前没有回答
相关问题 更多 >
编程相关推荐