python - Python - 请求未使用请求和 json 授权
问题描述
我一直在使用代码 python 来访问这种 urlhttps://api.elsevier.com/analytics/scival/institution/metrics?metricTypes=ScholarlyOutput&institutionIds=508175%2C508076&yearRange=5yrs&includeSelfCitations=true&byYear=true&includedDocs=AllPublicationTypes&journalImpactType=CiteScore&showAsFieldWeighted=false&apiKey=7f59af901d2d86f78a1fd60c1bf9426a
这是Elsevier Developer Portal提供的公共 json url
我一直在使用的小代码是这样的:
import requests
import json
url = "https://api.elsevier.com/analytics/scival/institution/metrics?metricTypes=ScholarlyOutput&institutionIds=508175%2C508076&yearRange=5yrs&includeSelfCitations=true&byYear=true&includedDocs=AllPublicationTypes&journalImpactType=CiteScore&showAsFieldWeighted=false&apiKey=7f59af901d2d86f78a1fd60c1bf9426a"
with requests.Session() as s:
data = s.get(url).json()
一切都还好,直到今天我的项目在执行此代码时给了我错误,如果我只运行, s.get(url).text
那么我会收到以下消息“请求未授权。请指定有效的 API 密钥或 HMAC 签名。我不得不说我什至有自己的 api_key 和 access_token,但即使使用它们我也会得到相同的消息。
所以,我需要一些帮助来管理提取数据,因为数据仍然在链接中https://api.elsevier.com/analytics/scival/institution/metrics?metricTypes=ScholarlyOutput&institutionIds=508175%2C508076&yearRange=5yrs&includeSelfCitations=true&byYear=true&includedDocs=AllPublicationTypes&journalImpactType=CiteScore&showAsFieldWeighted=false&apiKey=7f59af901d2d86f78a1fd60c1bf9426a
(只是谷歌会看到它)。希望有一些指导来做到这一点,因为直到昨天还没有错误。
解决方案
我检查了文档,您在请求中缺少标题。
下面的代码正在工作。
import requests
url = "https://api.elsevier.com/analytics/scival/institution/metrics?metricTypes=ScholarlyOutput&institutionIds=508175%2C508076&yearRange=5yrs&includeSelfCitations=true&byYear=true&includedDocs=AllPublicationTypes&journalImpactType=CiteScore&showAsFieldWeighted=false&apiKey=7f59af901d2d86f78a1fd60c1bf9426a"
payload={}
headers = {
'Accept': 'application/json'
}
response = requests.request("GET", url, headers=headers, data=payload)
print(response.text)
推荐阅读
- azure - 在完成下载管道工件任务之前删除工件
- reactjs - 在执行操作之前检查 redux-store 中是否存在某些数据的最佳方法
- kubernetes - 如何使用 Ansible-K8s 模块在 k8s 中创建秘密
- java - 如何在java中访问子类函数
- matlab - 如何在matlab中再次获取audioread.m文件?
- python - 如何在 Python 中获取 Yarn 应用程序日志
- angular - 导入角度和剑道的问题
- reactjs - 通过 react redux 和 redux-thunk 加载电子商务产品
- ios - 使用未解析的标识符“分析”Firebase Analytics
- amazon-elastic-beanstalk - terraform 总是想更新我的弹性豆茎的冷却时间