首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用Python自动从使用不同输入的网站下载文件?

如何使用Python自动从使用不同输入的网站下载文件?
EN

Stack Overflow用户
提问于 2020-12-03 21:40:33
回答 2查看 274关注 0票数 0

我需要从网站https://www.renewables.ninja/下载一些数据,如果可能的话,我想使用Python自动执行这个过程。

我想根据Python文件的输入选择城市(例如柏林、纽约、首尔)以及太阳能光伏和风能的参数,然后运行它(在网站上大约需要5秒)并下载csv文件。enter image description here

由于我需要为不同的数据点下载大量文件,是否可以使用Python自动执行此过程?enter image description here

EN

回答 2

Stack Overflow用户

发布于 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参数,以获取您想要的城市。

代码示例:

代码语言:javascript
复制
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.
票数 0
EN

Stack Overflow用户

发布于 2020-12-03 21:58:25

您可以使用requests模块获取文件并保存它们,如下所示:

代码语言:javascript
复制
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将如下所示:

代码语言:javascript
复制
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.}

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65127129

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档