我一直在使用Python中的镰刀库,以便从开放存取期刊目录中访问OAI-PMH记录。我注意到,下面的代码每次运行时(每次约2500-2600篇)都会产生与镰刀.ListRecords()访问的前4000篇文章相似但略有不同的英文文章数量。在我之前运行的检索和下载完整文章文本的另一段代码中,我注意到文章每次都会发生变化。这似乎镰刀并不是每次都以相同的顺序抓取OAI记录,这让我怀疑它们是否是以随机(ish)顺序抓取的?我是OAI格式的新手,所以我不确定这种(看似)随机排序是否是OAI记录通常如何存储的属性,DOAJ如何存储它们的属性,或者镰刀库在将OAI记录放入OAIIterator对象之前获取它们的方式
from sickle import Sickle
import time
from langdetect import detect
def get_time_estimate():
sickle = Sickle('https://doaj.org/oai.article')
records = sickle.ListRecords(metadataPrefix='oai_doaj')
tot = 0
num_eng = 0
start_time = time.time()
for rec in records:
tot += 1
metadata = rec.metadata
if 'abstract' not in metadata:
continue
if 'fullTextUrl' not in metadata:
continue
abs = metadata['abstract'][0]
full = metadata['fullTextUrl'][0]
language = detect(abs)
if language == 'en':
num_eng += 1
if tot == 4000:
break
print("Completed in %.2f seconds" % (time.time() - start_time))
print("Number of English records: %s" % num_eng)
目前没有回答
相关问题 更多 >
编程相关推荐