def stock_zh_index_daily(symbol: str = "sh000922") -> pd.DataFrame: """ 新浪财经-指数-历史行情数据, 大量抓取容易封 IP https://finance.sina.com.cn/realstock/company/sh000909/nc.shtml :param symbol: sz399998, 指定指数代码 :type symbol: str :return: 历史行情数据 :rtype: pandas.DataFrame """ params = {"d": "2020_2_4"} res = requests.get(zh_sina_index_stock_hist_url.format(symbol), params=params) js_code = py_mini_racer.MiniRacer() js_code.eval(hk_js_decode) dict_list = js_code.call("d", res.text.split("=")[1].split(";")[0].replace( '"', "")) # 执行js解密代码 temp_df = pd.DataFrame(dict_list) temp_df["date"] = pd.to_datetime(temp_df["date"]).dt.date temp_df["open"] = pd.to_numeric(temp_df["open"]) temp_df["close"] = pd.to_numeric(temp_df["close"]) temp_df["high"] = pd.to_numeric(temp_df["high"]) temp_df["low"] = pd.to_numeric(temp_df["low"]) temp_df["volume"] = pd.to_numeric(temp_df["volume"]) return temp_df
def stock_zh_index_daily(symbol: str = "sh000922") -> pd.DataFrame: """ 新浪财经-指数获取某个指数的历史行情数据, 大量抓取容易封IP :param symbol: str e.g., sz399998 :return: pandas.DataFrame open high low close volume date 2015-06-16 2526.056 2577.092 2469.216 2487.513 2224345088 2015-06-17 2476.863 2567.842 2422.229 2560.914 2181699840 2015-06-18 2553.739 2587.655 2480.321 2480.674 2032781312 2015-06-19 2431.218 2453.794 2286.967 2287.758 1687013248 2015-06-23 2280.189 2341.795 2156.396 2341.359 1627453440 ... ... ... ... ... 2019-11-11 1210.968 1210.968 1182.442 1182.718 415074658 2019-11-12 1184.118 1196.425 1184.005 1195.790 397246387 2019-11-13 1195.925 1195.925 1180.293 1185.293 334027614 2019-11-14 1185.788 1187.431 1178.414 1180.791 271514767 2019-11-15 1181.090 1181.739 1165.898 1166.536 338309880 """ params = {"d": "2020_2_4"} res = requests.get(zh_sina_index_stock_hist_url.format(symbol), params=params) js_code = execjs.compile(hk_js_decode) dict_list = js_code.call("d", res.text.split("=")[1].split(";")[0].replace( '"', "")) # 执行js解密代码 data_df = pd.DataFrame(dict_list) data_df["date"] = data_df["date"].str.split("T", expand=True).iloc[:, 0] data_df.index = pd.to_datetime(data_df["date"]) del data_df["date"] data_df = data_df.astype("float") return data_df
def stock_zh_index_daily(symbol: str = "sh000922") -> pd.DataFrame: """ 新浪财经-指数-历史行情数据, 大量抓取容易封IP :param symbol: sz399998, 指定指数代码 :type symbol: str :return: 历史行情数据 :rtype: pandas.DataFrame """ params = {"d": "2020_2_4"} res = requests.get(zh_sina_index_stock_hist_url.format(symbol), params=params) js_code = py_mini_racer.MiniRacer() js_code.eval(hk_js_decode) dict_list = js_code.call( "d", res.text.split("=")[1].split(";")[0].replace('"', "") ) # 执行js解密代码 data_df = pd.DataFrame(dict_list) data_df.index = pd.to_datetime(data_df["date"]) del data_df["date"] data_df = data_df.astype("float") return data_df