我正在尝试检索所有存在于Scopus主题区域内的期刊,比如“Medicine”,使用python包pybliometrics。
根据Scopus搜索(在线),这类期刊有13,477种。
通过目录医学的SerialTitle pybliometrics.scopus.SerialSearch()、subjArea='MEDI'和subjCode='2700'访问Scopus的subjArea='MEDI' API。与Scopus主题类别相关联的所有代码列表都列出了这里。
我不能获得超过5000种期刊。但是使用参数subjArea='MEDI',我可以检索5000+文档,但不超过10,000。
我不明白为什么用subjArea和subjCode搜索会给我带来不同的结果。有人能帮我理解为什么会发生这种事吗?
为了更好地理解这两个搜索查询,我添加了我的代码:
import pandas as pd
from pybliometrics.scopus import SerialSearch
def search_by_subject_area(subject_area):
print("Searching journals by subject area....")
df = pd.DataFrame()
i = 0
# limitation of i<10000 is added otherwise raises error of scopus500
while (i > -1 and i < 10000):
s = SerialSearch(query={"subj": f"{str(subject_area)}"}, start=f'{i}', refresh=True)
if s.get_results_size() == 0:
break
else:
i += s.get_results_size()
df_new = pd.DataFrame(s.results)
df = pd.concat([df, df_new], axis=0, ignore_index=True)
print(i, " journals obtained!")
def search_by_subject_code(code):
print("------------------------------------------------\n Searching journals by subject codes....")
df = pd.DataFrame()
i = 0
while (i > -1):
s = SerialSearch(query={"subjCode": f"{code}"}, start=f'{i}', refresh=True)
if s.get_results_size() == 0:
break
else:
i += s.get_results_size()
df_new = pd.DataFrame(s.results)
df = pd.concat([df, df_new], axis=0, ignore_index=True)
print(i, " journals obtained!")
if __name__ == '__main__':
search_by_subject_area(subject_area = 'MEDI')
search_by_subject_code('2700')发布于 2022-07-01 09:38:21
某些Scopus,包括Serial,受到限制:它们不允许超过5,000个结果。
有一些具有分页活动的搜索API,它们允许您遍历潜在的无限数量的结果。
https://stackoverflow.com/questions/72742736
复制相似问题