CEDApy/CEDA/economic/XinHua.py

55 lines
1.6 KiB
Python
Raw Normal View History

2022-01-27 16:09:06 +00:00
import ast
2022-01-28 04:12:34 +00:00
import json
2022-01-27 16:09:06 +00:00
import requests
import pandas as pd
2022-01-28 04:12:34 +00:00
from tqdm import tqdm
from pygtrans import Translate
def translate(text:str=None):
client = Translate()
text = client.translate(text, target="en")
return text.translatedText
2022-01-27 16:09:06 +00:00
url = {
"CNFIN": "https://api.cnfin.com/roll/charts/"
}
class XHData(object):
def __init__(self):
pass
2022-01-28 04:12:34 +00:00
def toc(self):
urls, tid, titles, titles_en = [], [], [], []
for i in tqdm(range(12005, 12100)):
url = "https://api.cnfin.com/roll/charts/getContent?ids={}".format(i)
r = requests.get(url)
if r.ok:
data = r.json()
if data["data"] == "图表数据不存在":
pass
else:
urls.append(url)
tid.append(i)
title = json.loads(data["data"]["list"][0]["modelCode"])["title"]["text"]
titles.append(title)
titles_en.append(translate(text=title))
return pd.DataFrame({"urls":urls, "id":tid, "title_zh":titles, "title_en":titles_en})
2022-01-27 16:09:06 +00:00
2022-01-28 04:12:34 +00:00
def download_data(self, iid:int=None):
tmp_url = url["CNFIN"] + "getContent?ids={}".format(iid)
2022-01-27 16:09:06 +00:00
r = requests.get(tmp_url)
if r.ok:
raw_data = r.json()
data = pd.DataFrame(ast.literal_eval(raw_data["data"]["list"][0]["content"]))
2022-01-28 04:12:34 +00:00
data.columns = ["date", "data"]
2022-01-27 16:09:06 +00:00
return data
else:
return ValueError("Something went wrong, try again later")
2022-01-28 04:12:34 +00:00
if __name__ == "__main__":
xhdata = XHData()
toc = xhdata.toc()
data = xhdata.download_data(iid=12006) # GDP