123456789101112131415161718192021222324252627282930313233343536373839404142434445 |
- #!/usr/bin/env python
- # -*- encoding: utf-8 -*-
- '''
- @Contact : liuyuqi.gov@msn.cn
- @Time : 2021/10/10 07:24:07
- @License : Copyright © 2017-2020 liuyuqi. All Rights Reserved.
- @Desc : 全球电力数据爬虫
- https://www.iea.org/fuels-and-technologies/electricity
- '''
- import re
- import sys
- import os
- import time
- import requests
- import pandas as pd
- import numpy as np
- headers = {
- 'user-agent': 'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/63.0.3239.132 Safari/537.36'}
- res = requests.get(r'https://api.iea.org/stats/countries', headers=headers)
- # 获取所有国家
- countries = pd.DataFrame(res.json())
- countries = countries.dropna(subset=["region"])
- dataList = []
- for i, country in enumerate(countries["stats"]):
- params = {
- "countries": country,
- "startYear": 1990, }
- res = requests.get(
- r'https://api.iea.org/stats/indicator/TotElecCons', headers=headers, params=params)
- df = pd.DataFrame(res.json())
- try:
- data = df[["year"]].copy()
- data["country"] = df["value"]
- data.set_index("year", inplace=True)
- dataList.append(data)
- print(f"{i}")
- except:
- continue
- results = pd.concat(dataList, axis=1).fillna(0).loc[:"2018"]
- results.to_csv("results.csv")
|