我已经在http://www.developers.elsevier.com/action/devprojects注册了。我创建了一个项目并获得了我的 scopus 密钥:
现在,使用这个生成的密钥,我想通过 和 查找firstname
作者。我从允许访问 Scopus 的大学网络发出请求(我可以完全手动访问 Scopus 搜索,从 Firefox 使用它没有问题)。但是,我想通过编写一个简单的脚本来自动化我的 Scopus 挖掘。我想通过给出他/她的,和来查找作者的出版物。lastname
subjectarea
firstname
lastname
subjectarea
这是我的代码:
# !/usr/bin/env python
# -*- coding: utf-8 -*-
import requests
import json
from scopus import SCOPUS_API_KEY
scopus_author_search_url = 'http://api.elsevier.com/content/search/author?'
headers = {'Accept':'application/json', 'X-ELS-APIKey': SCOPUS_API_KEY}
search_query = 'query=AUTHFIRST(%) AND AUTHLASTNAME(%s) AND SUBJAREA(%s)' % ('John', 'Kitchin', 'COMP')
# api_resource = "http://api.elsevier.com/content/search/author?apiKey=%s&" % (SCOPUS_API_KEY)
# request with first searching page
page_request = requests.get(scopus_author_search_url + search_query, headers=headers)
print page_request.url
# response to json
page = json.loads(page_request.content.decode("utf-8"))
print page
哪里SCOPUS_API_KEY
看起来像这样:SCOPUS_API_KEY="xxxxxxxx"
。
虽然我可以从我的大学网络完全访问 scopus,但我得到了这样的回应:
{u'service-error': {u'status': {u'statusText': u'Requestor 配置设置不足以访问此资源。', u'statusCode': u'AUTHENTICATION_ERROR'}}}
生成的链接如下所示:http://api.elsevier.com/content/search/author?query=AUTHFIRST(John)%20AND%20AUTHLASTNAME(Kitchin)%20AND%20SUBJAREA(COMP)当我点击它时,它显示一个 XML 文件:
<service-error><status>
<statusCode>AUTHORIZATION_ERROR</statusCode>
<statusText>No APIKey provided for request</statusText>
</status></service-error>
或者,当我更改为时,scopus_author_search_url
我"http://api.elsevier.com/content/search/author?apiKey=%s&" % (SCOPUS_API_KEY)
得到:
{u'service-error': {u'status': {u'statusText': u'Requestor configuration settings insufficient for access to this resource.', u'statusCode': u'AUTHENTICATION_ERROR'}}}
和 XML 文件:
<service-error>
<status>
<statusCode>AUTHENTICATION_ERROR</statusCode>
<statusText>Requestor configuration settings insufficient for access to this resource.</statusText>
</status>
</service-error>
这个问题的原因可能是什么,我该如何解决?