Ejemplo n.º 1
0
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
Ejemplo n.º 2
0
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
Ejemplo n.º 3
0
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