Scopus是一家文獻數據庫。它囊括有全球5000多家在科學、技術、醫學和社會科學等領域的出版商。
首先爬取Scopus論文數據需要注冊一個 elsevier 開發者賬號,因為所有API都需要key來訪問。API的列表可以查看
https://dev.elsevier.com/api_docs.html
這里有一個需要注意的是
普通的api只能爬取5000條數據,當超過5000條數據的時候,可以通過加cursor=*來獲取
正常情況我們會使用python來爬取,這里推薦一個很好用的package “pybliometrics”
pybliometrics: Python-based API-Wrapper to access Scopus
作為工具來爬取信息
pip install pybliometrics
接下來就是代碼實現了, 再通過publication doi 搜取文章信息的時候,可能會遇到搜索不到的情況
import pybliometrics from pybliometrics.scopus import AuthorRetrieval # pybliometrics.scopus.utils.create_config() 配置key # retrieval a = AuthorRetrieval('37055346800') print(a.eid) print(a.document_count) #search from pybliometrics.scopus import AuthorSearch b = AuthorSearch('AUTHLAST(Selten) and AUTHFIRST(Reinhard)', refresh=True) print(b) #search article information # 此處的文章搜索不到 from pybliometrics.scopus import ScopusSearch try: # a = ScopusSearch('10.1016/S0001-8791(02)00059-3') # 更好的文章搜索方式 a = ScopusSearch('DOI(10.1016/S0001-8791(02)00059-3)') print(a.results, sys.argv[2]) except: print('a' in locals().keys())
# pybliometrics.scopus.utils.create_config() 配置key
第一次去掉注釋,配置APIKey, InstToken不需要設置
vi ~/.scopus/config.ini
[Authentication]
APIKey = 45c21b56a471de9ae547070ca94ab829
InstToken =
cat ~/.scopus/config.ini
當key過期或者超過5000次requests之后,需要更新key
錯誤碼
pybliometrics.scopus.exception.Scopus429Error: QUOTA EXCEEDED