我一直在使用代碼 python 來訪問這種 url https://api.elsevier.com/analytics/scival/institution/metrics?metricTypes=ScholarlyOutput&institutionIds=508175,508076&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,508076&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,508076&yearRange=5yrs&includeSelfCitations=true&byYear=true&includedDocs=AllPublicationTypes&journalImpactType=CiteScore&showAsFieldWeighted=false&apiKey=7f59af901d2d86f78a1fd60c1bf9426a(只是谷歌并且會看到它)。希望有一些指導可以做到這一點,因為直到昨天都沒有錯誤。
uj5u.com熱心網友回復:
我已經檢查了檔案,但您缺少請求中的標頭。
下面的代碼正在作業。
import requests
url = "https://api.elsevier.com/analytics/scival/institution/metrics?metricTypes=ScholarlyOutput&institutionIds=508175,508076&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)
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/323616.html
上一篇:將URL轉換為字串的Regex
