Scopus论文数据爬虫

青春壹個敷衍的年華 提交于 2020-08-10 05:30:11

Scopus是一家文献数据库。它囊括有全球5000多家在科学、技术、医学和社会科学等领域的出版商。

首先爬取Scopus论文数据需要注册一个 elsevier 开发者账号,因为所有API都需要key来访问。API的列表可以查看

https://dev.elsevier.com/api_docs.html

这里有一个需要注意的是

普通的api只能爬取5000条数据,当超过5000条数据的时候,可以通过加cursor=*来获取

Elsevier Developer Portaldev.elsevier.com图标

 

正常情况我们会使用python来爬取,这里推荐一个很好用的package “pybliometrics

pybliometrics: Python-based API-Wrapper to access Scopuspybliometrics.readthedocs.io

作为工具来爬取信息

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

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!