akshare 1.13.46__py3-none-any.whl → 1.17.99__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- akshare/__init__.py +757 -161
- akshare/air/air_hebei.py +79 -53
- akshare/air/air_zhenqi.py +3 -7
- akshare/air/cons.py +1 -0
- akshare/air/crypto.js +1 -1
- akshare/air/outcrypto.js +1 -1
- akshare/air/sunrise_tad.py +32 -17
- akshare/article/cons.py +1 -0
- akshare/article/epu_index.py +4 -3
- akshare/article/ff_factor.py +19 -8
- akshare/article/fred_md.py +4 -1
- akshare/article/risk_rv.py +3 -8
- akshare/bank/bank_cbirc_2020.py +11 -11
- akshare/bank/cons.py +7 -6
- akshare/bond/bond_buy_back_em.py +228 -0
- akshare/bond/bond_cb_sina.py +1 -0
- akshare/bond/bond_cb_ths.py +17 -9
- akshare/bond/bond_cbond.py +19 -14
- akshare/bond/bond_china.py +38 -39
- akshare/bond/bond_china_money.py +75 -48
- akshare/bond/bond_convert.py +10 -9
- akshare/bond/bond_em.py +37 -17
- akshare/bond/bond_info_cm.py +28 -8
- akshare/bond/bond_issue_cninfo.py +73 -30
- akshare/bond/bond_summary.py +38 -37
- akshare/bond/bond_zh_cov.py +31 -40
- akshare/bond/bond_zh_sina.py +61 -51
- akshare/bond/cons.py +14 -11
- akshare/cal/__init__.py +0 -0
- akshare/cal/rv.py +170 -0
- akshare/cost/cost_living.py +7 -5
- akshare/crypto/__init__.py +1 -1
- akshare/crypto/crypto_bitcoin_cme.py +9 -7
- akshare/crypto/crypto_hold.py +4 -2
- akshare/currency/currency.py +1 -0
- akshare/currency/currency_china_bank_sina.py +11 -6
- akshare/currency/currency_safe.py +7 -6
- akshare/data/__init__.py +1 -1
- akshare/data/cninfo.js +1 -1
- akshare/datasets.py +10 -21
- akshare/economic/cons.py +10 -3
- akshare/economic/macro_australia.py +74 -69
- akshare/economic/macro_bank.py +95 -653
- akshare/economic/macro_canada.py +92 -81
- akshare/economic/macro_china.py +163 -117
- akshare/economic/macro_china_hk.py +0 -1
- akshare/economic/macro_china_nbs.py +24 -7
- akshare/economic/macro_euro.py +103 -56
- akshare/economic/macro_finance_ths.py +135 -0
- akshare/economic/macro_germany.py +1 -1
- akshare/economic/macro_info_ws.py +100 -0
- akshare/economic/macro_japan.py +0 -1
- akshare/economic/macro_other.py +1 -6
- akshare/economic/macro_swiss.py +2 -3
- akshare/economic/macro_uk.py +1 -1
- akshare/economic/macro_usa.py +7 -9
- akshare/economic/marco_cnbs.py +11 -6
- akshare/energy/energy_carbon.py +94 -126
- akshare/energy/energy_oil_em.py +1 -2
- akshare/event/cons.py +1 -0
- akshare/event/migration.py +3 -2
- akshare/exceptions.py +43 -0
- akshare/file_fold/calendar.json +245 -2
- akshare/forex/__init__.py +0 -0
- akshare/forex/cons.py +192 -0
- akshare/forex/forex_em.py +149 -0
- akshare/fortune/fortune_500.py +15 -48
- akshare/fortune/fortune_bloomberg.py +6 -3
- akshare/fortune/fortune_forbes_500.py +3 -6
- akshare/fortune/fortune_hurun.py +2 -1
- akshare/fortune/fortune_xincaifu_500.py +17 -14
- akshare/fund/fund_amac.py +38 -15
- akshare/fund/fund_announcement_em.py +145 -0
- akshare/fund/fund_aum_em.py +49 -35
- akshare/fund/fund_em.py +251 -220
- akshare/fund/fund_etf_em.py +44 -35
- akshare/fund/fund_etf_sina.py +76 -27
- akshare/fund/fund_etf_ths.py +95 -0
- akshare/fund/fund_fee_em.py +172 -0
- akshare/fund/fund_fhsp_em.py +42 -32
- akshare/fund/fund_init_em.py +8 -5
- akshare/fund/fund_lof_em.py +12 -19
- akshare/fund/fund_manager.py +25 -11
- akshare/fund/fund_overview_em.py +42 -0
- akshare/fund/fund_portfolio_em.py +78 -66
- akshare/fund/fund_position_lg.py +19 -8
- akshare/fund/fund_rank_em.py +90 -84
- akshare/fund/fund_rating.py +33 -12
- akshare/fund/fund_report_cninfo.py +63 -48
- akshare/fund/fund_scale_em.py +24 -13
- akshare/fund/fund_scale_sina.py +20 -10
- akshare/fund/fund_xq.py +3 -2
- akshare/futures/cons.py +141 -46
- akshare/futures/cot.py +89 -88
- akshare/futures/futures_basis.py +99 -33
- akshare/futures/futures_comex_em.py +1 -0
- akshare/futures/futures_comm_ctp.py +13 -2
- akshare/futures/futures_contract_detail.py +59 -9
- akshare/futures/futures_daily_bar.py +75 -62
- akshare/futures/futures_foreign.py +14 -8
- akshare/futures/futures_hf_em.py +215 -61
- akshare/futures/futures_hist_em.py +191 -0
- akshare/futures/futures_hq_sina.py +79 -61
- akshare/futures/futures_index_ccidx.py +24 -82
- akshare/futures/futures_inventory_99.py +70 -272
- akshare/futures/futures_inventory_em.py +14 -11
- akshare/futures/futures_news_shmet.py +2 -2
- akshare/futures/futures_roll_yield.py +11 -24
- akshare/futures/futures_rule.py +7 -3
- akshare/futures/futures_rule_em.py +38 -0
- akshare/futures/futures_settlement_price_sgx.py +21 -6
- akshare/futures/futures_stock_js.py +1 -2
- akshare/futures/futures_to_spot.py +43 -39
- akshare/futures/futures_warehouse_receipt.py +53 -48
- akshare/futures/futures_zh_sina.py +4 -4
- akshare/futures/receipt.py +298 -165
- akshare/futures/requests_fun.py +16 -3
- akshare/futures/symbol_var.py +32 -13
- akshare/futures_derivative/cons.py +100 -103
- akshare/futures_derivative/futures_contract_info_cffex.py +55 -39
- akshare/futures_derivative/futures_contract_info_czce.py +2 -0
- akshare/futures_derivative/futures_contract_info_dce.py +43 -17
- akshare/futures_derivative/futures_contract_info_gfex.py +43 -31
- akshare/futures_derivative/futures_contract_info_ine.py +43 -34
- akshare/futures_derivative/futures_contract_info_shfe.py +7 -8
- akshare/futures_derivative/futures_cot_sina.py +28 -19
- akshare/futures_derivative/futures_index_sina.py +25 -13
- akshare/fx/cons.py +12 -7
- akshare/fx/currency_investing.py +19 -285
- akshare/fx/fx_c_swap_cm.py +62 -0
- akshare/fx/fx_quote.py +3 -2
- akshare/fx/fx_quote_baidu.py +2 -1
- akshare/hf/__init__.py +1 -1
- akshare/hf/hf_sp500.py +8 -7
- akshare/index/cons.py +132 -28
- akshare/index/index_cflp.py +29 -26
- akshare/index/index_cni.py +89 -91
- akshare/index/index_cons.py +26 -10
- akshare/index/index_csindex.py +68 -0
- akshare/index/index_cx.py +263 -62
- akshare/index/index_drewry.py +17 -16
- akshare/index/index_eri.py +1 -0
- akshare/index/index_global_em.py +167 -0
- akshare/index/index_global_sina.py +82 -0
- akshare/index/index_kq_fz.py +17 -14
- akshare/index/index_kq_ss.py +1 -0
- akshare/index/index_option_qvix.py +351 -16
- akshare/index/index_research_sw.py +38 -38
- akshare/index/index_spot.py +9 -5
- akshare/index/index_stock_hk.py +6 -10
- akshare/index/index_stock_us_sina.py +1 -1
- akshare/index/index_stock_zh.py +193 -101
- akshare/index/index_stock_zh_csindex.py +15 -369
- akshare/index/index_sugar.py +18 -4
- akshare/index/index_sw.py +62 -34
- akshare/index/index_yw.py +53 -75
- akshare/index/index_zh_em.py +15 -82
- akshare/interest_rate/interbank_rate_em.py +14 -10
- akshare/movie/artist_yien.py +32 -5
- akshare/movie/jm.js +0 -1
- akshare/movie/movie_yien.py +92 -18
- akshare/movie/video_yien.py +28 -5
- akshare/news/__init__.py +1 -1
- akshare/news/news_baidu.py +395 -220
- akshare/news/news_cctv.py +38 -38
- akshare/news/news_stock.py +49 -13
- akshare/nlp/nlp_interface.py +7 -8
- akshare/option/cons.py +12 -12
- akshare/option/option_comm_qihuo.py +86 -0
- akshare/option/option_commodity.py +355 -211
- akshare/option/option_commodity_sina.py +22 -26
- akshare/option/option_contract_info_ctp.py +63 -0
- akshare/option/option_current_sse.py +61 -0
- akshare/option/option_current_szse.py +84 -0
- akshare/option/option_czce.py +37 -9
- akshare/option/option_daily_stats_sse_szse.py +145 -0
- akshare/option/option_em.py +4 -8
- akshare/option/option_finance.py +60 -12
- akshare/option/option_finance_sina.py +28 -26
- akshare/option/option_lhb_em.py +62 -57
- akshare/option/option_margin.py +62 -0
- akshare/option/option_premium_analysis_em.py +58 -53
- akshare/option/option_risk_analysis_em.py +11 -8
- akshare/option/option_risk_indicator_sse.py +18 -16
- akshare/option/option_value_analysis_em.py +62 -55
- akshare/other/__init__.py +1 -1
- akshare/other/other_car_cpca.py +20 -20
- akshare/pro/__init__.py +0 -1
- akshare/pro/client.py +6 -4
- akshare/pro/cons.py +3 -2
- akshare/pro/data_pro.py +6 -5
- akshare/qdii/__init__.py +0 -0
- akshare/qdii/qdii_jsl.py +233 -0
- akshare/qhkc/__init__.py +1 -6
- akshare/qhkc/qhkc_api.py +64 -22
- akshare/qhkc_web/__init__.py +1 -6
- akshare/qhkc_web/qhkc_fund.py +10 -6
- akshare/qhkc_web/qhkc_index.py +28 -14
- akshare/qhkc_web/qhkc_tool.py +62 -59
- akshare/rate/__init__.py +1 -1
- akshare/rate/repo_rate.py +36 -32
- akshare/reits/__init__.py +1 -1
- akshare/reits/reits_basic.py +149 -13
- akshare/request.py +117 -0
- akshare/spot/__init__.py +1 -1
- akshare/spot/spot_hog_soozhu.py +232 -0
- akshare/spot/spot_price_qh.py +121 -0
- akshare/spot/spot_sge.py +70 -9
- akshare/stock/cons.py +60 -23
- akshare/stock/stock_allotment_cninfo.py +10 -9
- akshare/stock/stock_ask_bid_em.py +3 -78
- akshare/stock/stock_board_concept_em.py +160 -35
- akshare/stock/stock_board_industry_em.py +163 -70
- akshare/stock/stock_cg_equity_mortgage.py +15 -11
- akshare/stock/stock_cg_guarantee.py +41 -51
- akshare/stock/stock_cg_lawsuit.py +36 -35
- akshare/stock/stock_dividend_cninfo.py +36 -16
- akshare/stock/stock_dzjy_em.py +347 -260
- akshare/stock/stock_fund_em.py +73 -64
- akshare/stock/stock_fund_hold.py +1 -2
- akshare/stock/stock_gsrl_em.py +1 -0
- akshare/stock/stock_hk_comparison_em.py +175 -0
- akshare/stock/stock_hk_famous.py +107 -0
- akshare/stock/stock_hk_fhpx_ths.py +2 -1
- akshare/stock/stock_hk_hot_rank_em.py +1 -0
- akshare/stock/stock_hk_sina.py +91 -42
- akshare/stock/stock_hold_control_cninfo.py +100 -15
- akshare/stock/stock_hold_control_em.py +4 -5
- akshare/stock/stock_hold_num_cninfo.py +18 -12
- akshare/stock/stock_hot_rank_em.py +4 -1
- akshare/stock/stock_hot_search_baidu.py +32 -19
- akshare/stock/stock_hot_up_em.py +4 -1
- akshare/stock/stock_hsgt_em.py +155 -0
- akshare/stock/stock_industry.py +1 -0
- akshare/stock/stock_industry_cninfo.py +25 -20
- akshare/stock/stock_industry_pe_cninfo.py +45 -31
- akshare/stock/stock_industry_sw.py +5 -9
- akshare/stock/stock_info.py +31 -19
- akshare/stock/stock_info_em.py +17 -11
- akshare/stock/stock_intraday_em.py +9 -80
- akshare/stock/stock_intraday_sina.py +2 -2
- akshare/stock/stock_ipo_summary_cninfo.py +25 -10
- akshare/stock/stock_new_cninfo.py +32 -19
- akshare/stock/stock_news_cx.py +39 -0
- akshare/stock/stock_profile_cninfo.py +9 -8
- akshare/stock/stock_profile_em.py +302 -0
- akshare/stock/stock_rank_forecast.py +8 -6
- akshare/stock/stock_repurchase_em.py +7 -2
- akshare/stock/stock_share_changes_cninfo.py +18 -14
- akshare/stock/stock_share_hold.py +24 -20
- akshare/stock/stock_stop.py +6 -6
- akshare/stock/stock_summary.py +153 -417
- akshare/stock/stock_us_famous.py +19 -11
- akshare/stock/stock_us_js.py +3 -2
- akshare/stock/stock_us_pink.py +38 -27
- akshare/stock/stock_us_sina.py +15 -12
- akshare/stock/stock_weibo_nlp.py +18 -20
- akshare/stock/stock_xq.py +36 -9
- akshare/stock/stock_zh_a_sina.py +58 -80
- akshare/stock/stock_zh_a_special.py +240 -243
- akshare/stock/stock_zh_a_tick_tx.py +11 -3
- akshare/stock/stock_zh_ah_tx.py +23 -26
- akshare/stock/stock_zh_b_sina.py +32 -55
- akshare/stock/stock_zh_comparison_em.py +250 -0
- akshare/stock/stock_zh_kcb_report.py +11 -9
- akshare/stock/stock_zh_kcb_sina.py +67 -64
- akshare/stock_a/__init__.py +0 -0
- akshare/stock_a/stock_board_concept_name_em.py +170 -0
- akshare/stock_a/stock_individual_fund_flow_rank.py +258 -0
- akshare/stock_a/stock_zh_a_spot.py +212 -0
- akshare/stock_feature/cons.py +1 -0
- akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
- akshare/stock_feature/stock_a_high_low.py +5 -2
- akshare/stock_feature/stock_a_indicator.py +15 -57
- akshare/stock_feature/stock_a_pe_and_pb.py +39 -9
- akshare/stock_feature/stock_account_em.py +0 -1
- akshare/stock_feature/stock_all_pb.py +2 -1
- akshare/stock_feature/stock_analyst_em.py +36 -30
- akshare/stock_feature/stock_board_concept_ths.py +144 -252
- akshare/stock_feature/stock_board_industry_ths.py +137 -401
- akshare/stock_feature/stock_buffett_index_lg.py +10 -8
- akshare/stock_feature/stock_classify_sina.py +3 -6
- akshare/stock_feature/stock_comment_em.py +81 -144
- akshare/stock_feature/stock_concept_futu.py +183 -0
- akshare/stock_feature/stock_congestion_lg.py +2 -1
- akshare/stock_feature/stock_cyq_em.py +5 -11
- akshare/stock_feature/stock_disclosure_cninfo.py +20 -10
- akshare/stock_feature/stock_dxsyl_em.py +121 -74
- akshare/stock_feature/stock_ebs_lg.py +5 -4
- akshare/stock_feature/stock_esg_sina.py +33 -15
- akshare/stock_feature/stock_fhps_em.py +62 -26
- akshare/stock_feature/stock_fhps_ths.py +34 -7
- akshare/stock_feature/stock_fund_flow.py +38 -25
- akshare/stock_feature/stock_gddh_em.py +19 -11
- akshare/stock_feature/stock_gdfx_em.py +226 -113
- akshare/stock_feature/stock_gdhs.py +75 -50
- akshare/stock_feature/stock_gdzjc_em.py +21 -10
- akshare/stock_feature/stock_gpzy_em.py +78 -46
- akshare/stock_feature/stock_gxl_lg.py +3 -2
- akshare/stock_feature/stock_hist_em.py +158 -237
- akshare/stock_feature/stock_hist_tx.py +13 -10
- akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
- akshare/stock_feature/stock_hot_xq.py +4 -6
- akshare/stock_feature/stock_hsgt_em.py +269 -97
- akshare/stock_feature/stock_hsgt_exchange_rate.py +115 -87
- akshare/stock_feature/stock_hsgt_min_em.py +13 -16
- akshare/stock_feature/stock_info.py +8 -81
- akshare/stock_feature/stock_inner_trade_xq.py +38 -31
- akshare/stock_feature/stock_irm_cninfo.py +32 -9
- akshare/stock_feature/stock_jgdy_em.py +43 -40
- akshare/stock_feature/stock_lh_yybpm.py +36 -37
- akshare/stock_feature/stock_lhb_em.py +165 -35
- akshare/stock_feature/stock_lhb_sina.py +93 -46
- akshare/stock_feature/stock_margin_em.py +101 -0
- akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -17
- akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +7 -7
- akshare/stock_feature/stock_market_legu.py +4 -2
- akshare/stock_feature/stock_pankou_em.py +71 -35
- akshare/stock_feature/stock_qsjy_em.py +13 -4
- akshare/stock_feature/stock_report_em.py +152 -8
- akshare/stock_feature/stock_research_report_em.py +55 -20
- akshare/stock_feature/stock_sns_sseinfo.py +15 -12
- akshare/stock_feature/stock_sy_em.py +20 -15
- akshare/stock_feature/stock_technology_ths.py +152 -120
- akshare/stock_feature/stock_tfp_em.py +37 -14
- akshare/stock_feature/stock_three_report_em.py +120 -78
- akshare/stock_feature/stock_ttm_lyr.py +18 -9
- akshare/stock_feature/stock_value_em.py +83 -0
- akshare/stock_feature/stock_yjbb_em.py +58 -32
- akshare/stock_feature/stock_yjyg_cninfo.py +6 -2
- akshare/stock_feature/stock_yjyg_em.py +1 -1
- akshare/stock_feature/stock_yzxdr_em.py +24 -22
- akshare/stock_feature/stock_zdhtmx_em.py +20 -6
- akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
- akshare/stock_feature/stock_zh_vote_baidu.py +4 -1
- akshare/stock_feature/stock_ztb_em.py +39 -24
- akshare/stock_fundamental/__init__.py +1 -1
- akshare/stock_fundamental/stock_basic_info_xq.py +119 -0
- akshare/stock_fundamental/{stock_finance_hk.py → stock_finance_hk_em.py} +23 -16
- akshare/stock_fundamental/{stock_finance.py → stock_finance_sina.py} +203 -59
- akshare/stock_fundamental/stock_finance_ths.py +524 -57
- akshare/stock_fundamental/stock_finance_us_em.py +268 -0
- akshare/stock_fundamental/stock_gbjg_em.py +80 -0
- akshare/stock_fundamental/stock_hold.py +26 -17
- akshare/stock_fundamental/stock_ipo_declare.py +1 -0
- akshare/stock_fundamental/stock_kcb_detail_sse.py +10 -10
- akshare/stock_fundamental/stock_kcb_sse.py +26 -25
- akshare/stock_fundamental/stock_notice.py +41 -18
- akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
- akshare/stock_fundamental/stock_profit_forecast_hk_etnet.py +64 -41
- akshare/stock_fundamental/stock_profit_forecast_ths.py +86 -35
- akshare/stock_fundamental/stock_recommend.py +20 -4
- akshare/stock_fundamental/stock_register_em.py +448 -0
- akshare/stock_fundamental/stock_zygc.py +5 -62
- akshare/tool/trade_date_hist.py +1 -1
- akshare/utils/context.py +43 -0
- akshare/utils/demjson.py +2009 -1338
- akshare/utils/func.py +49 -2
- akshare/utils/multi_decrypt.py +53 -0
- akshare/utils/token_process.py +6 -5
- akshare/utils/tqdm.py +13 -3
- {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/METADATA +56 -86
- akshare-1.17.99.dist-info/RECORD +409 -0
- {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/WHEEL +1 -1
- {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info/licenses}/LICENSE +1 -1
- tests/test_func.py +3 -5
- akshare/bond/bond_futures.py +0 -50
- akshare/bond/bond_investing.py +0 -139
- akshare/crypto/crypto_hist_investing.py +0 -249
- akshare/fortune/fortune_it_juzi.py +0 -123
- akshare/fund/fund_announcement.py +0 -56
- akshare/futures/futures_international.py +0 -170
- akshare/futures/futures_news_baidu.py +0 -54
- akshare/futures/inventory_data.py +0 -100
- akshare/futures_derivative/futures_index_price_nh.py +0 -61
- akshare/futures_derivative/futures_index_return_nh.py +0 -47
- akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
- akshare/futures_derivative/futures_other_index_nh.py +0 -145
- akshare/index/index_fear_greed_funddb.py +0 -78
- akshare/index/index_investing.py +0 -232
- akshare/sport/__init__.py +0 -6
- akshare/sport/sport_olympic.py +0 -27
- akshare/sport/sport_olympic_winter.py +0 -39
- akshare/stock_feature/stock_wencai.py +0 -104
- akshare/stock_fundamental/stock_mda_ym.py +0 -40
- akshare/stock_fundamental/stock_register.py +0 -292
- akshare-1.13.46.dist-info/RECORD +0 -380
- {akshare-1.13.46.dist-info → akshare-1.17.99.dist-info}/top_level.txt +0 -0
akshare/fund/fund_scale_em.py
CHANGED
|
@@ -5,6 +5,7 @@ Date: 2023/10/27 20:30
|
|
|
5
5
|
Desc: 天天基金网-基金数据-规模份额
|
|
6
6
|
https://fund.eastmoney.com/data/cyrjglist.html
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
11
|
|
|
@@ -29,14 +30,14 @@ def fund_scale_change_em() -> pd.DataFrame:
|
|
|
29
30
|
}
|
|
30
31
|
r = requests.get(url, params=params)
|
|
31
32
|
data_text = r.text
|
|
32
|
-
data_json = demjson.decode(data_text[data_text.find("{"): -1])
|
|
33
|
+
data_json = demjson.decode(data_text[data_text.find("{") : -1])
|
|
33
34
|
total_page = data_json["pages"]
|
|
34
35
|
big_df = pd.DataFrame()
|
|
35
36
|
for page in range(1, int(total_page) + 1):
|
|
36
37
|
params.update({"pi": page})
|
|
37
38
|
r = requests.get(url, params=params)
|
|
38
39
|
data_text = r.text
|
|
39
|
-
data_json = demjson.decode(data_text[data_text.find("{"): -1])
|
|
40
|
+
data_json = demjson.decode(data_text[data_text.find("{") : -1])
|
|
40
41
|
temp_df = pd.DataFrame(data_json["data"])
|
|
41
42
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
42
43
|
big_df.reset_index(inplace=True)
|
|
@@ -52,10 +53,18 @@ def fund_scale_change_em() -> pd.DataFrame:
|
|
|
52
53
|
]
|
|
53
54
|
big_df["截止日期"] = pd.to_datetime(big_df["截止日期"], errors="coerce").dt.date
|
|
54
55
|
big_df["基金家数"] = pd.to_numeric(big_df["基金家数"], errors="coerce")
|
|
55
|
-
big_df["期间申购"] = pd.to_numeric(
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
big_df["
|
|
56
|
+
big_df["期间申购"] = pd.to_numeric(
|
|
57
|
+
big_df["期间申购"].str.replace(",", ""), errors="coerce"
|
|
58
|
+
)
|
|
59
|
+
big_df["期间赎回"] = pd.to_numeric(
|
|
60
|
+
big_df["期间赎回"].str.replace(",", ""), errors="coerce"
|
|
61
|
+
)
|
|
62
|
+
big_df["期末总份额"] = pd.to_numeric(
|
|
63
|
+
big_df["期末总份额"].str.replace(",", ""), errors="coerce"
|
|
64
|
+
)
|
|
65
|
+
big_df["期末净资产"] = pd.to_numeric(
|
|
66
|
+
big_df["期末净资产"].str.replace(",", ""), errors="coerce"
|
|
67
|
+
)
|
|
59
68
|
return big_df
|
|
60
69
|
|
|
61
70
|
|
|
@@ -77,14 +86,14 @@ def fund_hold_structure_em() -> pd.DataFrame:
|
|
|
77
86
|
}
|
|
78
87
|
r = requests.get(url, params=params)
|
|
79
88
|
data_text = r.text
|
|
80
|
-
data_json = demjson.decode(data_text[data_text.find("{"): -1])
|
|
89
|
+
data_json = demjson.decode(data_text[data_text.find("{") : -1])
|
|
81
90
|
total_page = data_json["pages"]
|
|
82
91
|
big_df = pd.DataFrame()
|
|
83
92
|
for page in range(1, int(total_page) + 1):
|
|
84
93
|
params.update({"pi": page})
|
|
85
94
|
r = requests.get(url, params=params)
|
|
86
95
|
data_text = r.text
|
|
87
|
-
data_json = demjson.decode(data_text[data_text.find("{"): -1])
|
|
96
|
+
data_json = demjson.decode(data_text[data_text.find("{") : -1])
|
|
88
97
|
temp_df = pd.DataFrame(data_json["data"])
|
|
89
98
|
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
90
99
|
big_df.reset_index(inplace=True)
|
|
@@ -93,17 +102,19 @@ def fund_hold_structure_em() -> pd.DataFrame:
|
|
|
93
102
|
"序号",
|
|
94
103
|
"截止日期",
|
|
95
104
|
"基金家数",
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
105
|
+
"机构持有比列",
|
|
106
|
+
"个人持有比列",
|
|
107
|
+
"内部持有比列",
|
|
108
|
+
"总份额",
|
|
100
109
|
]
|
|
101
110
|
big_df["截止日期"] = pd.to_datetime(big_df["截止日期"], errors="coerce").dt.date
|
|
102
111
|
big_df["基金家数"] = pd.to_numeric(big_df["基金家数"], errors="coerce")
|
|
103
112
|
big_df["机构持有比列"] = pd.to_numeric(big_df["机构持有比列"], errors="coerce")
|
|
104
113
|
big_df["个人持有比列"] = pd.to_numeric(big_df["个人持有比列"], errors="coerce")
|
|
105
114
|
big_df["内部持有比列"] = pd.to_numeric(big_df["内部持有比列"], errors="coerce")
|
|
106
|
-
big_df["总份额"] = pd.to_numeric(
|
|
115
|
+
big_df["总份额"] = pd.to_numeric(
|
|
116
|
+
big_df["总份额"].str.replace(",", ""), errors="coerce"
|
|
117
|
+
)
|
|
107
118
|
return big_df
|
|
108
119
|
|
|
109
120
|
|
akshare/fund/fund_scale_sina.py
CHANGED
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
# -*- coding:utf-8 -*-
|
|
2
2
|
# !/usr/bin/env python
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2024/9/1 16:20
|
|
5
5
|
Desc: 新浪财经-基金规模
|
|
6
6
|
https://vip.stock.finance.sina.com.cn/fund_center/index.html#jjgmall
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
11
|
|
|
@@ -27,7 +28,10 @@ def fund_scale_open_sina(symbol: str = "股票型基金") -> pd.DataFrame:
|
|
|
27
28
|
"货币型基金": "5",
|
|
28
29
|
"QDII基金": "6",
|
|
29
30
|
}
|
|
30
|
-
url =
|
|
31
|
+
url = (
|
|
32
|
+
"http://vip.stock.finance.sina.com.cn/fund_center/data/jsonp.php/IO.XSRV2."
|
|
33
|
+
"CallbackList['J2cW8KXheoWKdSHc']/NetValueReturn_Service.NetValueReturnOpen"
|
|
34
|
+
)
|
|
31
35
|
params = {
|
|
32
36
|
"page": "1",
|
|
33
37
|
"num": "10000",
|
|
@@ -39,7 +43,7 @@ def fund_scale_open_sina(symbol: str = "股票型基金") -> pd.DataFrame:
|
|
|
39
43
|
}
|
|
40
44
|
r = requests.get(url, params=params)
|
|
41
45
|
data_text = r.text
|
|
42
|
-
data_json = demjson.decode(data_text[data_text.find("({") + 1: -2])
|
|
46
|
+
data_json = demjson.decode(data_text[data_text.find("({") + 1 : -2])
|
|
43
47
|
temp_df = pd.DataFrame(data_json["data"])
|
|
44
48
|
temp_df.reset_index(inplace=True)
|
|
45
49
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -95,19 +99,22 @@ def fund_scale_close_sina() -> pd.DataFrame:
|
|
|
95
99
|
:return: 基金规模
|
|
96
100
|
:rtype: pandas.DataFrame
|
|
97
101
|
"""
|
|
98
|
-
url =
|
|
102
|
+
url = (
|
|
103
|
+
"http://vip.stock.finance.sina.com.cn/fund_center/data/jsonp.php/IO.XSRV2."
|
|
104
|
+
"CallbackList['_bjN6KvXOkfPy2Bu']/NetValueReturn_Service.NetValueReturnClose"
|
|
105
|
+
)
|
|
99
106
|
params = {
|
|
100
107
|
"page": "1",
|
|
101
108
|
"num": "1000",
|
|
102
109
|
"sort": "zmjgm",
|
|
103
110
|
"asc": "0",
|
|
104
111
|
"ccode": "",
|
|
105
|
-
"type2":
|
|
112
|
+
"type2": "",
|
|
106
113
|
"type3": "",
|
|
107
114
|
}
|
|
108
115
|
r = requests.get(url, params=params)
|
|
109
116
|
data_text = r.text
|
|
110
|
-
data_json = demjson.decode(data_text[data_text.find("({") + 1: -2])
|
|
117
|
+
data_json = demjson.decode(data_text[data_text.find("({") + 1 : -2])
|
|
111
118
|
temp_df = pd.DataFrame(data_json["data"])
|
|
112
119
|
temp_df.reset_index(inplace=True)
|
|
113
120
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -163,19 +170,22 @@ def fund_scale_structured_sina() -> pd.DataFrame:
|
|
|
163
170
|
:return: 基金规模
|
|
164
171
|
:rtype: pandas.DataFrame
|
|
165
172
|
"""
|
|
166
|
-
url =
|
|
173
|
+
url = (
|
|
174
|
+
"http://vip.stock.finance.sina.com.cn/fund_center/data/jsonp.php/IO.XSRV2."
|
|
175
|
+
"CallbackList['cRrwseM7NWX68rDa']/NetValueReturn_Service.NetValueReturnCX"
|
|
176
|
+
)
|
|
167
177
|
params = {
|
|
168
178
|
"page": "1",
|
|
169
179
|
"num": "1000",
|
|
170
180
|
"sort": "zmjgm",
|
|
171
181
|
"asc": "0",
|
|
172
182
|
"ccode": "",
|
|
173
|
-
"type2":
|
|
183
|
+
"type2": "",
|
|
174
184
|
"type3": "",
|
|
175
185
|
}
|
|
176
186
|
r = requests.get(url, params=params)
|
|
177
187
|
data_text = r.text
|
|
178
|
-
data_json = demjson.decode(data_text[data_text.find("({") + 1: -2])
|
|
188
|
+
data_json = demjson.decode(data_text[data_text.find("({") + 1 : -2])
|
|
179
189
|
temp_df = pd.DataFrame(data_json["data"])
|
|
180
190
|
temp_df.reset_index(inplace=True)
|
|
181
191
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -234,5 +244,5 @@ if __name__ == "__main__":
|
|
|
234
244
|
fund_scale_structured_sina_df = fund_scale_structured_sina()
|
|
235
245
|
print(fund_scale_structured_sina_df)
|
|
236
246
|
|
|
237
|
-
fund_scale_open_sina_df = fund_scale_open_sina(symbol=
|
|
247
|
+
fund_scale_open_sina_df = fund_scale_open_sina(symbol="股票型基金")
|
|
238
248
|
print(fund_scale_open_sina_df)
|
akshare/fund/fund_xq.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date: 2024/
|
|
4
|
+
Date: 2024/10/27 22:30
|
|
5
5
|
Desc: 雪球基金-基金详情
|
|
6
6
|
https://danjuanfunds.com/funding/003545
|
|
7
7
|
"""
|
|
@@ -25,7 +25,8 @@ def fund_individual_basic_info_xq(
|
|
|
25
25
|
"""
|
|
26
26
|
url = f"https://danjuanfunds.com/djapi/fund/{symbol}"
|
|
27
27
|
headers = {
|
|
28
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
28
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
29
|
+
"Chrome/80.0.3987.149 Safari/537.36"
|
|
29
30
|
}
|
|
30
31
|
r = requests.get(url, headers=headers, timeout=timeout)
|
|
31
32
|
json_data = r.json()["data"]
|
akshare/futures/cons.py
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/7/21 15:00
|
|
5
5
|
Desc: 期货配置文件
|
|
6
6
|
"""
|
|
7
7
|
|
|
@@ -11,8 +11,92 @@ import os
|
|
|
11
11
|
import pickle
|
|
12
12
|
import re
|
|
13
13
|
|
|
14
|
+
|
|
15
|
+
futures_inventory_em_symbol_dict = {
|
|
16
|
+
"a": "A", # 豆一
|
|
17
|
+
"ag": "AG", # 沪银
|
|
18
|
+
"al": "AL", # 沪铝
|
|
19
|
+
"ao": "AO", # 氧化铝
|
|
20
|
+
"AP": "AP", # 苹果
|
|
21
|
+
"au": "AU", # 沪金
|
|
22
|
+
"b": "B", # 豆二
|
|
23
|
+
"bb": None, # 胶合板 (new中没有对应)
|
|
24
|
+
"bc": None, # 国际铜 (new中没有对应)
|
|
25
|
+
"br": "BR", # BR橡胶
|
|
26
|
+
"bu": "BU", # 沥青
|
|
27
|
+
"c": "C", # 玉米
|
|
28
|
+
"CF": "CF", # 棉花/郑棉
|
|
29
|
+
"CJ": "CJ", # 红枣
|
|
30
|
+
"cs": "CS", # 淀粉/玉米淀粉
|
|
31
|
+
"cu": "CU", # 沪铜
|
|
32
|
+
"CY": "CY", # 棉纱
|
|
33
|
+
"eb": "EB", # 苯乙烯
|
|
34
|
+
"ec": "ec", # 集运欧线/集运指数(欧线)
|
|
35
|
+
"eg": "EG", # 乙二醇
|
|
36
|
+
"fb": None, # 纤维板 (new中没有对应)
|
|
37
|
+
"FG": "FG", # 玻璃
|
|
38
|
+
"fu": "FU", # 燃料油/燃油
|
|
39
|
+
"hc": "HC", # 热卷
|
|
40
|
+
"i": "I", # 铁矿石
|
|
41
|
+
"IC": "IC", # 中证500
|
|
42
|
+
"IF": "IF", # 沪深300
|
|
43
|
+
"IH": "IH", # 上证50
|
|
44
|
+
"IM": "IM", # 中证1000
|
|
45
|
+
"j": "J", # 焦炭
|
|
46
|
+
"jd": "JD", # 鸡蛋
|
|
47
|
+
"jm": "JM", # 焦煤
|
|
48
|
+
"JR": None, # 粳稻 (new中没有对应)
|
|
49
|
+
"l": "L", # 塑料
|
|
50
|
+
"lc": "lc", # 碳酸锂
|
|
51
|
+
"lh": "LH", # 生猪
|
|
52
|
+
"LR": None, # 晚籼稻 (new中没有对应)
|
|
53
|
+
"lu": "lu", # LU燃油/低硫燃料油
|
|
54
|
+
"m": "M", # 豆粕
|
|
55
|
+
"MA": "MA", # 甲醇
|
|
56
|
+
"ni": "NI", # 沪镍/镍
|
|
57
|
+
"nr": "nr", # 20号胶
|
|
58
|
+
"OI": "OI", # 菜籽油/菜油
|
|
59
|
+
"p": "P", # 棕榈油/棕榈
|
|
60
|
+
"pb": "PB", # 沪铅
|
|
61
|
+
"PF": "PF", # 短纤
|
|
62
|
+
"pg": "PG", # 液化气/液化石油气
|
|
63
|
+
"PK": "PK", # 花生
|
|
64
|
+
"PM": None, # 普麦 (new中没有对应)
|
|
65
|
+
"pp": "PP", # 聚丙烯
|
|
66
|
+
"PX": "PX", # 对二甲苯
|
|
67
|
+
"rb": "RB", # 螺纹钢
|
|
68
|
+
"RI": None, # 早籼稻 (new中没有对应)
|
|
69
|
+
"RM": "RM", # 菜籽粕/菜粕
|
|
70
|
+
"rr": None, # 粳米 (new中没有对应)
|
|
71
|
+
"RS": "RS", # 油菜籽/菜籽
|
|
72
|
+
"ru": "RU", # 橡胶
|
|
73
|
+
"SA": "SA", # 纯碱
|
|
74
|
+
"sc": None, # 原油 (new中没有对应)
|
|
75
|
+
"SF": "SF", # 硅铁
|
|
76
|
+
"SH": "SH", # 烧碱
|
|
77
|
+
"si": "si", # 工业硅
|
|
78
|
+
"SM": "SM", # 锰硅
|
|
79
|
+
"sn": "SN", # 沪锡/锡
|
|
80
|
+
"sp": "SP", # 纸浆
|
|
81
|
+
"SR": "SR", # 白糖
|
|
82
|
+
"ss": "SS", # 不锈钢
|
|
83
|
+
"T": "T", # 十年国债/10年期国债
|
|
84
|
+
"TA": "TA", # PTA
|
|
85
|
+
"TF": "TF", # 五年国债/5年期国债
|
|
86
|
+
"TL": "TL", # 三十年国债/30年期国债期货
|
|
87
|
+
"TS": "TS", # 二年国债/2年期国债
|
|
88
|
+
"UR": "UR", # 尿素
|
|
89
|
+
"v": "V", # PVC
|
|
90
|
+
"WH": None, # 强麦 (new中没有对应)
|
|
91
|
+
"wr": None, # 线材 (new中没有对应)
|
|
92
|
+
"y": "Y", # 豆油
|
|
93
|
+
"ZC": None, # 动力煤 (new中没有对应)
|
|
94
|
+
"zn": "ZN", # 沪锌
|
|
95
|
+
}
|
|
96
|
+
|
|
14
97
|
hq_sina_spot_headers = {
|
|
15
|
-
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,
|
|
98
|
+
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,"
|
|
99
|
+
"image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
|
|
16
100
|
"Accept-Encoding": "gzip, deflate",
|
|
17
101
|
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
18
102
|
"Cache-Control": "no-cache",
|
|
@@ -21,14 +105,18 @@ hq_sina_spot_headers = {
|
|
|
21
105
|
"Pragma": "no-cache",
|
|
22
106
|
"Referer": "https://finance.sina.com.cn/futuremarket/",
|
|
23
107
|
"Upgrade-Insecure-Requests": "1",
|
|
24
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
|
|
108
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
|
|
109
|
+
"(KHTML, like Gecko) Chrome/78.0.3904.97 Safari/537.36",
|
|
25
110
|
}
|
|
26
111
|
|
|
27
112
|
# zh_sina_spot
|
|
28
113
|
zh_subscribe_exchange_symbol_url = (
|
|
29
114
|
"http://vip.stock.finance.sina.com.cn/quotes_service/view/js/qihuohangqing.js"
|
|
30
115
|
)
|
|
31
|
-
zh_match_main_contract_url =
|
|
116
|
+
zh_match_main_contract_url = (
|
|
117
|
+
"http://vip.stock.finance.sina.com.cn/quotes_service/"
|
|
118
|
+
"api/json_v2.php/Market_Center.getHQFuturesData"
|
|
119
|
+
)
|
|
32
120
|
zh_match_main_contract_payload = {
|
|
33
121
|
"page": "1",
|
|
34
122
|
"num": "5",
|
|
@@ -48,7 +136,8 @@ zh_sina_spot_headers = {
|
|
|
48
136
|
"Referer": "https://finance.sina.com.cn/futuremarket/",
|
|
49
137
|
"Sec-Fetch-Mode": "no-cors",
|
|
50
138
|
"Sec-Fetch-Site": "cross-site",
|
|
51
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
139
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
140
|
+
"Chrome/78.0.3904.97 Safari/537.36",
|
|
52
141
|
}
|
|
53
142
|
|
|
54
143
|
# 99 期货
|
|
@@ -58,36 +147,20 @@ inventory_temp_headers = {
|
|
|
58
147
|
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
59
148
|
"Connection": "keep-alive",
|
|
60
149
|
"Content-Type": "application/x-www-form-urlencoded",
|
|
61
|
-
"Cookie": "UM_distinctid=16c378978de5cc-02cfeac5f7869b-c343162-1fa400-16c378978df8d7;
|
|
150
|
+
"Cookie": "UM_distinctid=16c378978de5cc-02cfeac5f7869b-c343162-1fa400-16c378978df8d7; "
|
|
151
|
+
"__utmz=181566328.1570520149.3.2.utmcsr=baidu|utmccn=(organic)|utmcmd=organic; "
|
|
152
|
+
"ASP.NET_SessionId=wj5gxuzl3fvvr25503tquq55; __utmc=181566328; _fxaid=1D9A634AB9F5D026585"
|
|
153
|
+
"6F7E85E7BC196%1D%2BOOl1inxPE7181fmKs5HCs%2BdLO%2Fq%2FbSvf46UVjo%2BE7w%3D%1DPYphpUa9OlzW"
|
|
154
|
+
"UzatrOQTXLPOVillbwMhTIJas%2ByfkyVL2Hd5XA1GOSslksqDkMTccXvQ2duLNsc0CHT4789JrYNbakJrpzrxL"
|
|
155
|
+
"nwtBC5GCTssKHGEpor6EwAZfWJgBUlCs4JYFcGUnh3jIO69A4LsOlRMOGf4c9cd%2FbohSjTx3VA%3D; __utma"
|
|
156
|
+
"=181566328.1348268634.1564299852.1571066568.1571068391.7; tgw_l7_route=eb1311426274fc07"
|
|
157
|
+
"631b2135a6431f7d; __utmt=1; __utmb=181566328.7.10.1571068391",
|
|
62
158
|
"Host": "service.99qh.com",
|
|
63
159
|
"Referer": "http://service.99qh.com/Storage/Storage.aspx?page=99qh",
|
|
64
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
sample_headers = {
|
|
68
|
-
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3",
|
|
69
|
-
"Host": "service.99qh.com",
|
|
70
|
-
"Origin": "http://service.99qh.com",
|
|
71
|
-
"Referer": "http://www.99qh.com/d/store.aspx",
|
|
72
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",
|
|
160
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 "
|
|
161
|
+
"(KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",
|
|
73
162
|
}
|
|
74
163
|
|
|
75
|
-
qh_headers = {
|
|
76
|
-
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9",
|
|
77
|
-
"Accept-Encoding": "gzip, deflate",
|
|
78
|
-
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
79
|
-
"Cache-Control": "no-cache",
|
|
80
|
-
"Connection": "keep-alive",
|
|
81
|
-
"Content-Length": "8429",
|
|
82
|
-
"Content-Type": "application/x-www-form-urlencoded",
|
|
83
|
-
"Host": "service.99qh.com",
|
|
84
|
-
"Origin": "http://service.99qh.com",
|
|
85
|
-
"Pragma": "no-cache",
|
|
86
|
-
"Cookie": "__utma=181566328.985082941.1656754961.1656754961.1656754961.1; __utmc=181566328; __utmz=181566328.1656754961.1.1.utmcsr=(direct)|utmccn=(direct)|utmcmd=(none); ASP.NET_SessionId=42k0mpzfu3fv5cxqmtrwc20y; tgw_l7_route=b26adbec28f4b4e1f7290033d59c43a7; __utmt=1; __utmb=181566328.2.10.1656754961",
|
|
87
|
-
"Referer": "http://service.99qh.com/Storage/Storage.aspx?page=99qh",
|
|
88
|
-
"Upgrade-Insecure-Requests": "1",
|
|
89
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/77.0.3865.90 Safari/537.36",
|
|
90
|
-
}
|
|
91
164
|
# 奇货可查
|
|
92
165
|
QHKC_INDEX_URL = "https://www.qhkch.com/ajax/index_show.php"
|
|
93
166
|
QHKC_INDEX_TREND_URL = "https://qhkch.com/ajax/indexes_trend.php"
|
|
@@ -100,7 +173,6 @@ QHKC_FUND_BIG_CHANGE_URL = "https://qhkch.com/ajax/fund_big_chge.php"
|
|
|
100
173
|
QHKC_TOOL_FOREIGN_URL = "https://qhkch.com/ajax/toolbox_foreign.php"
|
|
101
174
|
QHKC_TOOL_GDP_URL = "https://qhkch.com/dist/views/toolbox/gdp.html?v=1.10.7.1"
|
|
102
175
|
|
|
103
|
-
|
|
104
176
|
# 键值对: 键为交易所代码, 值为具体合约代码
|
|
105
177
|
market_exchange_symbols = {
|
|
106
178
|
"cffex": ["IF", "IC", "IM", "IH", "T", "TF", "TS", "TL"],
|
|
@@ -126,6 +198,8 @@ market_exchange_symbols = {
|
|
|
126
198
|
"EB", # 20191009
|
|
127
199
|
"PG",
|
|
128
200
|
"LH", # 20210108 生猪期货
|
|
201
|
+
"LG", # 20241118 原木期货
|
|
202
|
+
"BZ", # 20250708 纯苯期货
|
|
129
203
|
],
|
|
130
204
|
"czce": [
|
|
131
205
|
"WH",
|
|
@@ -161,8 +235,9 @@ market_exchange_symbols = {
|
|
|
161
235
|
"SA", # 纯碱期货
|
|
162
236
|
"PK", # 20210201 花生期货
|
|
163
237
|
"PF", # 短纤
|
|
164
|
-
"PX", #
|
|
238
|
+
"PX", # 对二甲苯
|
|
165
239
|
"SH", # 烧碱
|
|
240
|
+
"PR", # 瓶片
|
|
166
241
|
],
|
|
167
242
|
"shfe": [
|
|
168
243
|
"CU",
|
|
@@ -188,8 +263,9 @@ market_exchange_symbols = {
|
|
|
188
263
|
"AO",
|
|
189
264
|
"BR",
|
|
190
265
|
"EC", # 集运指数
|
|
266
|
+
"AD", # 铸造铝合金期货
|
|
191
267
|
],
|
|
192
|
-
"gfex": ["SI", "LC"],
|
|
268
|
+
"gfex": ["SI", "LC", "PS"],
|
|
193
269
|
}
|
|
194
270
|
|
|
195
271
|
contract_symbols = []
|
|
@@ -201,7 +277,8 @@ headers = {
|
|
|
201
277
|
"Cache-Control": "max-age=0",
|
|
202
278
|
"Accept": "text/html, */*; q=0.01",
|
|
203
279
|
"X-Requested-With": "XMLHttpRequest",
|
|
204
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
280
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
281
|
+
"Chrome/56.0.2924.87 Safari/537.36",
|
|
205
282
|
"DNT": "1",
|
|
206
283
|
"Referer": "http://www.super-ping.com/?ping=www.google.com&locale=sc",
|
|
207
284
|
"Accept-Encoding": "gzip, deflate, sdch",
|
|
@@ -211,7 +288,8 @@ headers = {
|
|
|
211
288
|
shfe_headers = {"User-Agent": "Mozilla/4.0 (compatible; MSIE 5.5; Windows NT)"}
|
|
212
289
|
|
|
213
290
|
dce_headers = {
|
|
214
|
-
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng
|
|
291
|
+
"Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,"
|
|
292
|
+
"*/*;q=0.8,application/signed-exchange;v=b3",
|
|
215
293
|
"Accept-Encoding": "gzip, deflate",
|
|
216
294
|
"Accept-Language": "zh-CN,zh;q=0.9,en;q=0.8",
|
|
217
295
|
"Cache-Control": "max-age=0",
|
|
@@ -222,26 +300,37 @@ dce_headers = {
|
|
|
222
300
|
"Proxy-Connection": "keep-alive",
|
|
223
301
|
"Referer": "http://www.dce.com.cn/publicweb/quotesdata/weekQuotesCh.html",
|
|
224
302
|
"Upgrade-Insecure-Requests": "1",
|
|
225
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
303
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
304
|
+
"Chrome/77.0.3865.90 Safari/537.36",
|
|
226
305
|
}
|
|
227
306
|
|
|
228
307
|
SYS_SPOT_PRICE_URL = "http://www.100ppi.com/sf/day-{}.html"
|
|
229
308
|
SYS_SPOT_PRICE_LATEST_URL = "http://www.100ppi.com/sf/"
|
|
230
309
|
|
|
231
|
-
SHFE_VOL_RANK_URL = "
|
|
310
|
+
SHFE_VOL_RANK_URL = "https://tsite.shfe.com.cn/data/dailydata/kx/pm%s.dat"
|
|
311
|
+
SHFE_VOL_RANK_URL_20250701 = "https://www.shfe.com.cn/data/tradedata/future/dailydata/pm%s.dat"
|
|
232
312
|
CFFEX_VOL_RANK_URL = "http://www.cffex.com.cn/sj/ccpm/%s/%s/%s_1.csv"
|
|
233
|
-
DCE_VOL_RANK_URL_1 =
|
|
234
|
-
|
|
313
|
+
DCE_VOL_RANK_URL_1 = (
|
|
314
|
+
"http://portal.dce.com.cn/publicweb/quotesdata/exportMemberDealPosiQuotesData.html?"
|
|
315
|
+
"memberDealPosiQuotes.variety=%s&memberDealPosiQuotes.trade_type=0&contract.cont"
|
|
316
|
+
"ract_id=%s&contract.variety_id=%s&year=%s&month=%s&day=%s&exportFlag=txt"
|
|
317
|
+
)
|
|
318
|
+
DCE_VOL_RANK_URL_2 = (
|
|
319
|
+
"http://portal.dce.com.cn/publicweb/quotesdata/memberDealPosiQuotes.html?memberDeal"
|
|
320
|
+
"PosiQuotes.variety=%s&memberDealPosiQuotes.trade_type=0&contract.contract_id="
|
|
321
|
+
"all&contract.variety_id=%s&year=%s&month=%s&day=%s"
|
|
322
|
+
)
|
|
235
323
|
CZCE_VOL_RANK_URL_1 = "http://www.czce.com.cn/cn/exchange/jyxx/pm/pm%s.html"
|
|
236
324
|
CZCE_VOL_RANK_URL_2 = "http://www.czce.com.cn/cn/exchange/%s/datatradeholding/%s.htm"
|
|
237
325
|
CZCE_VOL_RANK_URL_3 = (
|
|
238
326
|
"http://www.czce.com.cn/cn/DFSStaticFiles/Future/%s/%s/FutureDataHolding.htm"
|
|
239
327
|
)
|
|
240
328
|
|
|
241
|
-
DCE_RECEIPT_URL = "http://
|
|
329
|
+
DCE_RECEIPT_URL = "http://portal.dce.com.cn/publicweb/quotesdata/wbillWeeklyQuotes.html"
|
|
242
330
|
|
|
243
|
-
SHFE_RECEIPT_URL_1 = "http://
|
|
244
|
-
SHFE_RECEIPT_URL_2 = "http://
|
|
331
|
+
SHFE_RECEIPT_URL_1 = "http://tsite.shfe.com.cn/data/dailydata/%sdailystock.html"
|
|
332
|
+
SHFE_RECEIPT_URL_2 = "http://tsite.shfe.com.cn/data/dailydata/%sdailystock.dat"
|
|
333
|
+
SHFE_RECEIPT_URL_20250701 = "https://www.shfe.com.cn/data/tradedata/future/dailydata/%sdailystock.dat"
|
|
245
334
|
CZCE_RECEIPT_URL_1 = "http://www.czce.com.cn/cn/exchange/jyxx/sheet/sheet%s.html"
|
|
246
335
|
CZCE_RECEIPT_URL_2 = "http://www.czce.com.cn/cn/exchange/%s/datawhsheet/%s.htm"
|
|
247
336
|
CZCE_RECEIPT_URL_3 = (
|
|
@@ -249,8 +338,9 @@ CZCE_RECEIPT_URL_3 = (
|
|
|
249
338
|
)
|
|
250
339
|
|
|
251
340
|
CFFEX_DAILY_URL = "http://www.cffex.com.cn/fzjy/mrhq/{}/{}/{}_1.csv"
|
|
252
|
-
SHFE_DAILY_URL = "http://
|
|
253
|
-
|
|
341
|
+
SHFE_DAILY_URL = "http://tsite.shfe.com.cn/data/dailydata/kx/kx%s.dat"
|
|
342
|
+
SHFE_DAILY_URL_20250630 = "https://www.shfe.com.cn/data/tradedata/future/dailydata/kx%s.dat"
|
|
343
|
+
SHFE_V_WAP_URL = "http://tsite.shfe.com.cn/data/dailydata/ck/%sdailyTimePrice.dat"
|
|
254
344
|
DCE_DAILY_URL = "http://www.dce.com.cn//publicweb/quotesdata/dayQuotesCh.html"
|
|
255
345
|
CZCE_DAILY_URL_1 = "http://www.czce.com.cn/cn/exchange/jyxx/hq/hq%s.html"
|
|
256
346
|
CZCE_DAILY_URL_2 = "http://www.czce.com.cn/cn/exchange/%s/datadaily/%s.txt"
|
|
@@ -412,6 +502,11 @@ DCE_MAP = {
|
|
|
412
502
|
"苯乙烯": "EB",
|
|
413
503
|
"液化石油气": "PG",
|
|
414
504
|
"生猪": "LH",
|
|
505
|
+
"原木": "LG",
|
|
506
|
+
"纯苯": "BZ",
|
|
507
|
+
"聚氯乙烯月均价": "VF",
|
|
508
|
+
"聚丙烯月均价": "PPF",
|
|
509
|
+
"聚乙烯月均价": "LF",
|
|
415
510
|
}
|
|
416
511
|
|
|
417
512
|
|
|
@@ -478,7 +573,7 @@ def get_calendar():
|
|
|
478
573
|
"""
|
|
479
574
|
setting_file_name = "calendar.json"
|
|
480
575
|
setting_file_path = get_json_path(setting_file_name, __file__)
|
|
481
|
-
with open(setting_file_path, "r") as f:
|
|
576
|
+
with open(setting_file_path, "r", encoding="utf-8") as f:
|
|
482
577
|
data_json = json.load(f)
|
|
483
578
|
return data_json
|
|
484
579
|
|