我需要从网站https://www.renewables.ninja/下载一些数据,如果可能的话,我想使用Python自动执行这个过程。
我想根据Python文件的输入选择城市(例如柏林、纽约、首尔)以及太阳能光伏和风能的参数,然后运行它(在网站上大约需要5秒)并下载csv文件。enter image description here
由于我需要为不同的数据点下载大量文件,是否可以使用Python自动执行此过程?enter image description here
发布于 2020-12-03 21:50:15
是的,自动化这个过程绝对是可能的。请考虑查看以下url:https://www.renewables.ninja/api/data/pv?local_time=true&format=csv&header=true&lat=52.5170365&lon=13.3888599&date_from=2019-01-01&date_to=2019-12-31&dataset=merra2&capacity=1&system_loss=0.1&tracking=0&tilt=35&azim=180&raw=false
这是对SolarPV应用编程接口请求,data.You可以在此处更改查询参数,并获取您want.Just更改的城市的数据。
要获取城市的这些参数,可以使用以下接口:https://nominatim.openstreetmap.org/search?format=json&limit=1&q=berlin。在这里更改Q参数,以获取您想要的城市。
代码示例:
import json
import requests
COORD_API = "https://nominatim.openstreetmap.org/search"
CITY = "berlin" # It's just an example.
payload = {'format': 'json', 'limit': 1, 'q':CITY}
r = requests.get(COORD_API, params=payload)
lat_long_data = json.loads(r.text)
lat = lat_long_data[0]['lat']
lon = lat_long_data[0]['lon']
# With this values we can get Solar data
MAIN_API = "https://www.renewables.ninja/api/data/pv?local_time=true&format=csv&header=true&date_from=2019-01-01&date_to=2019-12-31&dataset=merra2&capacity=1&system_loss=0.1&tracking=0&tilt=35&azim=180&raw=false"
payload = {'lat': lat, 'lon': lon}
resp = requests.get(MAIN_API, params=payload)
***
Do something with this data.发布于 2020-12-03 21:58:25
您可以使用requests模块获取文件并保存它们,如下所示:
import requests
with open('saved_data_file.csv','w') as f:
csv_data = requests.get('https://www.renewables.ninja/api/data/weather',
params={"format":"csv"}).content
f.write(csv_data)如果您想要查看在从网站请求某些数据时使用了哪些参数,请打开inspect element (F12)并转到network选项卡。使用表单请求数据,并查看弹出的新请求。URL将如下所示:
https://www.renewables.ninja/api/data/weather?local_time=true&format=csv&header=true&lat=70.90491170356151&lon=24.589843749945597&date_from=2019-01-01&date_to=2019-12-31&dataset=merra2&var_t2m=true&var_prectotland=false&var_precsnoland=false&var_snomas=false&var_rhoa=false&var_swgdn=false&var_swtdn=false&var_cldtot=false然后挑选出您想要的参数,并将其放入字典中,然后将其提供给requests.get,例如params={"format":"csv","local_time":"true","header":"true" etc.}
https://stackoverflow.com/questions/65127129
复制相似问题