akshare 1.14.49__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 +595 -129
- akshare/air/air_hebei.py +77 -54
- akshare/air/air_zhenqi.py +0 -4
- akshare/air/cons.py +1 -0
- akshare/air/crypto.js +1 -1
- akshare/air/outcrypto.js +1 -1
- 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 +1 -1
- akshare/bond/bond_convert.py +10 -9
- akshare/bond/bond_em.py +37 -17
- akshare/bond/bond_summary.py +38 -37
- akshare/bond/bond_zh_cov.py +31 -40
- akshare/bond/bond_zh_sina.py +4 -0
- 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/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 +97 -105
- akshare/economic/macro_china_hk.py +0 -1
- akshare/economic/macro_euro.py +103 -56
- akshare/economic/macro_finance_ths.py +7 -5
- akshare/economic/macro_germany.py +1 -1
- 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 +0 -1
- akshare/energy/energy_oil_em.py +1 -2
- akshare/event/cons.py +1 -0
- 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 +1 -37
- 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_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 +75 -27
- akshare/fund/fund_etf_ths.py +2 -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 +23 -21
- akshare/fund/fund_position_lg.py +19 -8
- akshare/fund/fund_rank_em.py +2 -5
- akshare/fund/fund_rating.py +33 -12
- 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 +135 -39
- akshare/futures/cot.py +55 -56
- akshare/futures/futures_basis.py +49 -11
- akshare/futures/futures_comex_em.py +1 -0
- akshare/futures/futures_comm_ctp.py +1 -1
- akshare/futures/futures_contract_detail.py +59 -9
- akshare/futures/futures_daily_bar.py +66 -59
- 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 +5 -3
- 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 +0 -1
- akshare/futures/futures_to_spot.py +5 -6
- akshare/futures/futures_warehouse_receipt.py +48 -47
- akshare/futures/futures_zh_sina.py +3 -3
- 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 +3 -4
- akshare/futures_derivative/futures_cot_sina.py +8 -6
- akshare/futures_derivative/futures_index_sina.py +25 -13
- akshare/fx/cons.py +12 -7
- 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_cni.py +7 -7
- akshare/index/index_cons.py +2 -2
- akshare/index/index_csindex.py +68 -0
- akshare/index/index_cx.py +20 -20
- 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 +21 -21
- akshare/index/index_spot.py +9 -5
- akshare/index/index_stock_hk.py +5 -9
- akshare/index/index_stock_zh.py +111 -24
- akshare/index/index_stock_zh_csindex.py +3 -367
- akshare/index/index_sugar.py +18 -4
- akshare/index/index_sw.py +10 -2
- akshare/index/index_yw.py +53 -75
- akshare/index/index_zh_em.py +15 -82
- akshare/interest_rate/interbank_rate_em.py +0 -1
- akshare/movie/jm.js +0 -1
- akshare/news/__init__.py +1 -1
- akshare/news/news_baidu.py +395 -222
- akshare/news/news_stock.py +49 -16
- akshare/option/cons.py +2 -2
- akshare/option/option_commodity.py +341 -220
- 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 +0 -1
- akshare/option/option_em.py +4 -8
- akshare/option/option_finance.py +60 -12
- akshare/option/option_finance_sina.py +7 -7
- akshare/option/option_lhb_em.py +0 -1
- 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 +3 -4
- akshare/option/option_value_analysis_em.py +62 -55
- akshare/other/__init__.py +1 -1
- 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 +165 -3
- akshare/spot/spot_sge.py +70 -9
- akshare/stock/cons.py +60 -23
- akshare/stock/stock_allotment_cninfo.py +8 -8
- 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_dividend_cninfo.py +31 -17
- akshare/stock/stock_dzjy_em.py +347 -260
- akshare/stock/stock_fund_em.py +72 -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 +4 -5
- 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 +84 -36
- akshare/stock/stock_hold_control_cninfo.py +82 -0
- akshare/stock/stock_hold_control_em.py +0 -2
- 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 +1 -2
- akshare/stock/stock_info.py +6 -4
- akshare/stock/stock_info_em.py +17 -11
- akshare/stock/stock_intraday_em.py +4 -78
- akshare/stock/stock_intraday_sina.py +2 -2
- akshare/stock/stock_news_cx.py +39 -0
- akshare/stock/stock_profile_cninfo.py +7 -7
- akshare/stock/stock_profile_em.py +302 -0
- akshare/stock/stock_rank_forecast.py +6 -5
- akshare/stock/stock_repurchase_em.py +7 -2
- akshare/stock/stock_share_changes_cninfo.py +7 -5
- 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 +5 -6
- akshare/stock/stock_us_js.py +3 -2
- akshare/stock/stock_us_pink.py +38 -27
- akshare/stock/stock_us_sina.py +7 -3
- akshare/stock/stock_weibo_nlp.py +18 -20
- akshare/stock/stock_xq.py +24 -22
- akshare/stock/stock_zh_a_sina.py +8 -5
- 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 +2 -2
- akshare/stock/stock_zh_comparison_em.py +250 -0
- 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_indicator.py +9 -54
- akshare/stock_feature/stock_a_pe_and_pb.py +23 -5
- 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 +328 -0
- akshare/stock_feature/stock_board_industry_ths.py +57 -2
- 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_congestion_lg.py +2 -1
- akshare/stock_feature/stock_cyq_em.py +5 -11
- akshare/stock_feature/stock_disclosure_cninfo.py +6 -6
- 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 +29 -7
- akshare/stock_feature/stock_fhps_em.py +2 -1
- akshare/stock_feature/stock_fhps_ths.py +15 -7
- akshare/stock_feature/stock_fund_flow.py +30 -22
- 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 +137 -234
- 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 +7 -80
- akshare/stock_feature/stock_inner_trade_xq.py +38 -31
- akshare/stock_feature/stock_jgdy_em.py +43 -40
- akshare/stock_feature/stock_lhb_em.py +119 -3
- akshare/stock_feature/stock_margin_em.py +0 -1
- akshare/stock_feature/stock_margin_sse.py +0 -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 +151 -7
- akshare/stock_feature/stock_research_report_em.py +55 -20
- akshare/stock_feature/stock_sy_em.py +20 -15
- akshare/stock_feature/stock_technology_ths.py +122 -77
- akshare/stock_feature/stock_tfp_em.py +2 -1
- akshare/stock_feature/stock_three_report_em.py +21 -5
- 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_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} +60 -7
- 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 +12 -3
- 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_zygc.py +5 -62
- 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-1.14.49.dist-info → akshare-1.17.99.dist-info}/METADATA +54 -80
- akshare-1.17.99.dist-info/RECORD +409 -0
- {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/WHEEL +1 -1
- {akshare-1.14.49.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/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 -53
- 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/stock_feature/stock_wencai.py +0 -104
- akshare/stock_fundamental/stock_mda_ym.py +0 -40
- akshare-1.14.49.dist-info/RECORD +0 -387
- {akshare-1.14.49.dist-info → akshare-1.17.99.dist-info}/top_level.txt +0 -0
|
@@ -8,6 +8,7 @@ https://data.eastmoney.com/xg/xg/dxsyl.html
|
|
|
8
8
|
东方财富网-数据中心-新股数据-新股申购与中签查询
|
|
9
9
|
https://data.eastmoney.com/xg/xg/default_2.html
|
|
10
10
|
"""
|
|
11
|
+
|
|
11
12
|
import pandas as pd
|
|
12
13
|
import requests
|
|
13
14
|
|
|
@@ -93,14 +94,30 @@ def stock_dxsyl_em() -> pd.DataFrame:
|
|
|
93
94
|
]
|
|
94
95
|
big_df["发行价"] = pd.to_numeric(big_df["发行价"], errors="coerce")
|
|
95
96
|
big_df["最新价"] = pd.to_numeric(big_df["最新价"], errors="coerce")
|
|
96
|
-
big_df["网上-发行中签率"] = pd.to_numeric(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
big_df["
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
big_df["
|
|
103
|
-
|
|
97
|
+
big_df["网上-发行中签率"] = pd.to_numeric(
|
|
98
|
+
big_df["网上-发行中签率"], errors="coerce"
|
|
99
|
+
)
|
|
100
|
+
big_df["网上-有效申购股数"] = pd.to_numeric(
|
|
101
|
+
big_df["网上-有效申购股数"], errors="coerce"
|
|
102
|
+
)
|
|
103
|
+
big_df["网上-有效申购户数"] = pd.to_numeric(
|
|
104
|
+
big_df["网上-有效申购户数"], errors="coerce"
|
|
105
|
+
)
|
|
106
|
+
big_df["网上-超额认购倍数"] = pd.to_numeric(
|
|
107
|
+
big_df["网上-超额认购倍数"], errors="coerce"
|
|
108
|
+
)
|
|
109
|
+
big_df["网下-配售中签率"] = pd.to_numeric(
|
|
110
|
+
big_df["网下-配售中签率"], errors="coerce"
|
|
111
|
+
)
|
|
112
|
+
big_df["网下-有效申购股数"] = pd.to_numeric(
|
|
113
|
+
big_df["网下-有效申购股数"], errors="coerce"
|
|
114
|
+
)
|
|
115
|
+
big_df["网下-有效申购户数"] = pd.to_numeric(
|
|
116
|
+
big_df["网下-有效申购户数"], errors="coerce"
|
|
117
|
+
)
|
|
118
|
+
big_df["网下-配售认购倍数"] = pd.to_numeric(
|
|
119
|
+
big_df["网下-配售认购倍数"], errors="coerce"
|
|
120
|
+
)
|
|
104
121
|
big_df["总发行数量"] = pd.to_numeric(big_df["总发行数量"], errors="coerce")
|
|
105
122
|
big_df["开盘溢价"] = pd.to_numeric(big_df["开盘溢价"], errors="coerce")
|
|
106
123
|
big_df["首日涨幅"] = pd.to_numeric(big_df["首日涨幅"], errors="coerce")
|
|
@@ -151,47 +168,47 @@ def stock_xgsglb_em(symbol: str = "全部股票") -> pd.DataFrame:
|
|
|
151
168
|
|
|
152
169
|
big_df.rename(
|
|
153
170
|
columns={
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
|
|
173
|
-
|
|
174
|
-
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
171
|
+
"ORG_CODE": "-",
|
|
172
|
+
"SECURITY_CODE": "代码",
|
|
173
|
+
"SECUCODE": "带市场标识股票代码",
|
|
174
|
+
"SECURITY_NAME_ABBR": "简称",
|
|
175
|
+
"APPLY_CODE": "申购代码",
|
|
176
|
+
"EXPECT_ISSUE_NUM": "发行总数",
|
|
177
|
+
"PRICE_WAY": "定价方式",
|
|
178
|
+
"ISSUE_PRICE": "发行价格",
|
|
179
|
+
"ISSUE_PE_RATIO": "发行市盈率",
|
|
180
|
+
"APPLY_DATE": "申购日",
|
|
181
|
+
"RESULT_NOTICE_DATE": "发行结果公告日期",
|
|
182
|
+
"SELECT_LISTING_DATE": "上市首日-上市日",
|
|
183
|
+
"ONLINE_ISSUE_NUM": "网上-发行数量",
|
|
184
|
+
"APPLY_AMT_UPPER": "网上-顶格所需资金",
|
|
185
|
+
"APPLY_NUM_UPPER": "网上-申购上限",
|
|
186
|
+
"ONLINE_PAY_DATE": "网上申购缴款日期",
|
|
187
|
+
"ONLINE_REFUND_DATE": "网上申购资金退款日",
|
|
188
|
+
"INFO_CODE": "-",
|
|
189
|
+
"ONLINE_ISSUE_LWR": "中签率",
|
|
190
|
+
"NEWEST_PRICE": "最新价格-价格",
|
|
191
|
+
"CLOSE_PRICE": "首日收盘价",
|
|
192
|
+
"INITIAL_MULTIPLE": "-",
|
|
193
|
+
"PER_SHARES_INCOME": "上市首日-每百股获利",
|
|
194
|
+
"LD_CLOSE_CHANGE": "上市首日-涨幅",
|
|
195
|
+
"TURNOVERRATE": "首日换手率",
|
|
196
|
+
"AMPLITUDE": "首日振幅",
|
|
197
|
+
"ONLINE_APPLY_LOWER": "-",
|
|
198
|
+
"MAIN_BUSINESS": "主营业务",
|
|
199
|
+
"INDUSTRY_PE_RATIO": "行业市盈率",
|
|
200
|
+
"APPLY_AMT_100": "稳获百股需配资金",
|
|
201
|
+
"TAKE_UP_TIME": "资金占用时间",
|
|
202
|
+
"CAPTURE_PROFIT": "上市首日-约合年化收益",
|
|
203
|
+
"APPLY_SHARE_100": "每获配百股需配股数",
|
|
204
|
+
"AVERAGE_PRICE": "上市首日-均价",
|
|
205
|
+
"ORG_VAN": "参与申购人数",
|
|
206
|
+
"VA_AMT": "参与申购资金",
|
|
207
|
+
"ISSUE_PRICE_ADJFACTOR": "-",
|
|
191
208
|
},
|
|
192
|
-
inplace=True
|
|
209
|
+
inplace=True,
|
|
193
210
|
)
|
|
194
|
-
big_df[
|
|
211
|
+
big_df["最新价格-累计涨幅"] = big_df["首日收盘价"] / big_df["最新价格-价格"]
|
|
195
212
|
|
|
196
213
|
big_df = big_df[
|
|
197
214
|
[
|
|
@@ -205,39 +222,61 @@ def stock_xgsglb_em(symbol: str = "全部股票") -> pd.DataFrame:
|
|
|
205
222
|
"发行价格",
|
|
206
223
|
"申购日",
|
|
207
224
|
"中签率",
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
225
|
+
"稳获百股需配资金",
|
|
226
|
+
"最新价格-价格",
|
|
227
|
+
"最新价格-累计涨幅",
|
|
228
|
+
"上市首日-上市日",
|
|
229
|
+
"上市首日-均价",
|
|
230
|
+
"上市首日-涨幅",
|
|
231
|
+
"上市首日-每百股获利",
|
|
232
|
+
"上市首日-约合年化收益",
|
|
233
|
+
"发行市盈率",
|
|
234
|
+
"行业市盈率",
|
|
218
235
|
"参与申购资金",
|
|
219
236
|
"参与申购人数",
|
|
220
237
|
]
|
|
221
238
|
]
|
|
222
239
|
big_df["发行总数"] = pd.to_numeric(big_df["发行总数"], errors="coerce")
|
|
223
|
-
big_df["网上-发行数量"] = pd.to_numeric(
|
|
224
|
-
|
|
225
|
-
|
|
240
|
+
big_df["网上-发行数量"] = pd.to_numeric(
|
|
241
|
+
big_df["网上-发行数量"], errors="coerce"
|
|
242
|
+
)
|
|
243
|
+
big_df["网上-申购上限"] = pd.to_numeric(
|
|
244
|
+
big_df["网上-申购上限"], errors="coerce"
|
|
245
|
+
)
|
|
246
|
+
big_df["网上-顶格所需资金"] = pd.to_numeric(
|
|
247
|
+
big_df["网上-顶格所需资金"], errors="coerce"
|
|
248
|
+
)
|
|
226
249
|
big_df["发行价格"] = pd.to_numeric(big_df["发行价格"], errors="coerce")
|
|
227
250
|
big_df["中签率"] = pd.to_numeric(big_df["中签率"], errors="coerce")
|
|
228
|
-
big_df["稳获百股需配资金"] = pd.to_numeric(
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
big_df["
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
big_df["
|
|
251
|
+
big_df["稳获百股需配资金"] = pd.to_numeric(
|
|
252
|
+
big_df["稳获百股需配资金"], errors="coerce"
|
|
253
|
+
)
|
|
254
|
+
big_df["最新价格-价格"] = pd.to_numeric(
|
|
255
|
+
big_df["最新价格-价格"], errors="coerce"
|
|
256
|
+
)
|
|
257
|
+
big_df["最新价格-累计涨幅"] = pd.to_numeric(
|
|
258
|
+
big_df["最新价格-累计涨幅"], errors="coerce"
|
|
259
|
+
)
|
|
260
|
+
big_df["上市首日-均价"] = pd.to_numeric(
|
|
261
|
+
big_df["上市首日-均价"], errors="coerce"
|
|
262
|
+
)
|
|
263
|
+
big_df["上市首日-涨幅"] = pd.to_numeric(
|
|
264
|
+
big_df["上市首日-涨幅"], errors="coerce"
|
|
265
|
+
)
|
|
266
|
+
big_df["上市首日-每百股获利"] = pd.to_numeric(
|
|
267
|
+
big_df["上市首日-每百股获利"], errors="coerce"
|
|
268
|
+
)
|
|
269
|
+
big_df["上市首日-约合年化收益"] = pd.to_numeric(
|
|
270
|
+
big_df["上市首日-约合年化收益"], errors="coerce"
|
|
271
|
+
)
|
|
235
272
|
big_df["发行市盈率"] = pd.to_numeric(big_df["发行市盈率"], errors="coerce")
|
|
236
273
|
big_df["行业市盈率"] = pd.to_numeric(big_df["行业市盈率"], errors="coerce")
|
|
237
274
|
big_df["参与申购资金"] = pd.to_numeric(big_df["参与申购资金"], errors="coerce")
|
|
238
275
|
big_df["参与申购人数"] = pd.to_numeric(big_df["参与申购人数"], errors="coerce")
|
|
239
276
|
big_df["申购日"] = pd.to_datetime(big_df["申购日"], errors="coerce").dt.date
|
|
240
|
-
big_df["上市首日-上市日"] = pd.to_datetime(
|
|
277
|
+
big_df["上市首日-上市日"] = pd.to_datetime(
|
|
278
|
+
big_df["上市首日-上市日"], errors="coerce"
|
|
279
|
+
).dt.date
|
|
241
280
|
return big_df
|
|
242
281
|
else:
|
|
243
282
|
params = {
|
|
@@ -261,15 +300,15 @@ def stock_xgsglb_em(symbol: str = "全部股票") -> pd.DataFrame:
|
|
|
261
300
|
r = requests.get(url, params=params)
|
|
262
301
|
data_json = r.json()
|
|
263
302
|
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
264
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
303
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
265
304
|
big_df.rename(
|
|
266
305
|
columns={
|
|
267
306
|
"SECURITY_CODE": "股票代码",
|
|
268
307
|
"SECURITY_NAME": "股票简称",
|
|
269
308
|
"TRADE_MARKET_CODE": "-",
|
|
270
309
|
"APPLY_CODE": "申购代码",
|
|
271
|
-
"TRADE_MARKET": "
|
|
272
|
-
"MARKET_TYPE": "
|
|
310
|
+
"TRADE_MARKET": "交易所",
|
|
311
|
+
"MARKET_TYPE": "板块",
|
|
273
312
|
"ORG_TYPE": "-",
|
|
274
313
|
"ISSUE_NUM": "发行总数",
|
|
275
314
|
"ONLINE_ISSUE_NUM": "网上发行",
|
|
@@ -320,6 +359,8 @@ def stock_xgsglb_em(symbol: str = "全部股票") -> pd.DataFrame:
|
|
|
320
359
|
"股票代码",
|
|
321
360
|
"股票简称",
|
|
322
361
|
"申购代码",
|
|
362
|
+
"交易所",
|
|
363
|
+
"板块",
|
|
323
364
|
"发行总数",
|
|
324
365
|
"网上发行",
|
|
325
366
|
"顶格申购需配市值",
|
|
@@ -347,7 +388,9 @@ def stock_xgsglb_em(symbol: str = "全部股票") -> pd.DataFrame:
|
|
|
347
388
|
big_df["中签缴款日期"] = pd.to_datetime(big_df["中签缴款日期"]).dt.date
|
|
348
389
|
big_df["发行总数"] = pd.to_numeric(big_df["发行总数"], errors="coerce")
|
|
349
390
|
big_df["网上发行"] = pd.to_numeric(big_df["网上发行"], errors="coerce")
|
|
350
|
-
big_df["顶格申购需配市值"] = pd.to_numeric(
|
|
391
|
+
big_df["顶格申购需配市值"] = pd.to_numeric(
|
|
392
|
+
big_df["顶格申购需配市值"], errors="coerce"
|
|
393
|
+
)
|
|
351
394
|
big_df["申购上限"] = pd.to_numeric(big_df["申购上限"], errors="coerce")
|
|
352
395
|
big_df["发行价格"] = pd.to_numeric(big_df["发行价格"], errors="coerce")
|
|
353
396
|
big_df["最新价"] = pd.to_numeric(big_df["最新价"], errors="coerce")
|
|
@@ -355,8 +398,12 @@ def stock_xgsglb_em(symbol: str = "全部股票") -> pd.DataFrame:
|
|
|
355
398
|
big_df["发行市盈率"] = pd.to_numeric(big_df["发行市盈率"], errors="coerce")
|
|
356
399
|
big_df["行业市盈率"] = pd.to_numeric(big_df["行业市盈率"], errors="coerce")
|
|
357
400
|
big_df["中签率"] = pd.to_numeric(big_df["中签率"], errors="coerce")
|
|
358
|
-
big_df["询价累计报价倍数"] = pd.to_numeric(
|
|
359
|
-
|
|
401
|
+
big_df["询价累计报价倍数"] = pd.to_numeric(
|
|
402
|
+
big_df["询价累计报价倍数"], errors="coerce"
|
|
403
|
+
)
|
|
404
|
+
big_df["配售对象报价家数"] = pd.to_numeric(
|
|
405
|
+
big_df["配售对象报价家数"], errors="coerce"
|
|
406
|
+
)
|
|
360
407
|
big_df["涨幅"] = pd.to_numeric(big_df["涨幅"], errors="coerce")
|
|
361
408
|
big_df["每中一签获利"] = pd.to_numeric(big_df["每中一签获利"], errors="coerce")
|
|
362
409
|
return big_df
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/3/19 15:30
|
|
5
5
|
Desc: 乐咕乐股-股债利差
|
|
6
6
|
https://legulegu.com/stockdata/equity-bond-spread
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
11
|
|
|
@@ -24,11 +25,11 @@ def stock_ebs_lg() -> pd.DataFrame:
|
|
|
24
25
|
r = requests.get(
|
|
25
26
|
url,
|
|
26
27
|
params=params,
|
|
27
|
-
**get_cookie_csrf(url="https://legulegu.com/stockdata/equity-bond-spread")
|
|
28
|
+
**get_cookie_csrf(url="https://legulegu.com/stockdata/equity-bond-spread"),
|
|
28
29
|
)
|
|
29
30
|
data_json = r.json()
|
|
30
31
|
temp_df = pd.DataFrame(data_json["data"])
|
|
31
|
-
temp_df["date"] = pd.to_datetime(temp_df["date"]).dt.date
|
|
32
|
+
temp_df["date"] = pd.to_datetime(temp_df["date"], errors="coerce").dt.date
|
|
32
33
|
temp_df.rename(
|
|
33
34
|
columns={
|
|
34
35
|
"date": "日期",
|
|
@@ -46,7 +47,7 @@ def stock_ebs_lg() -> pd.DataFrame:
|
|
|
46
47
|
"股债利差均线",
|
|
47
48
|
]
|
|
48
49
|
]
|
|
49
|
-
temp_df[
|
|
50
|
+
temp_df["日期"] = pd.to_datetime(temp_df["日期"], errors="coerce").dt.date
|
|
50
51
|
temp_df["沪深300指数"] = pd.to_numeric(temp_df["沪深300指数"], errors="coerce")
|
|
51
52
|
temp_df["股债利差"] = pd.to_numeric(temp_df["股债利差"], errors="coerce")
|
|
52
53
|
temp_df["股债利差均线"] = pd.to_numeric(temp_df["股债利差均线"], errors="coerce")
|
|
@@ -7,10 +7,10 @@ https://finance.sina.com.cn/esg/
|
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import math
|
|
10
|
+
from akshare.utils.tqdm import get_tqdm
|
|
10
11
|
|
|
11
12
|
import pandas as pd
|
|
12
13
|
import requests
|
|
13
|
-
from tqdm import tqdm
|
|
14
14
|
|
|
15
15
|
|
|
16
16
|
def stock_esg_msci_sina() -> pd.DataFrame:
|
|
@@ -25,6 +25,7 @@ def stock_esg_msci_sina() -> pd.DataFrame:
|
|
|
25
25
|
data_json = r.json()
|
|
26
26
|
page_num = math.ceil(int(data_json["result"]["data"]["total"]) / 100)
|
|
27
27
|
big_df = pd.DataFrame()
|
|
28
|
+
tqdm = get_tqdm()
|
|
28
29
|
for page in tqdm(range(1, page_num + 1), leave=False):
|
|
29
30
|
headers = {
|
|
30
31
|
"Referer": "https://finance.sina.com.cn/",
|
|
@@ -175,6 +176,7 @@ def stock_esg_rate_sina() -> pd.DataFrame:
|
|
|
175
176
|
data_json = r.json()
|
|
176
177
|
page_num = math.ceil(int(data_json["result"]["data"]["info"]["total"]) / 200)
|
|
177
178
|
big_df = pd.DataFrame()
|
|
179
|
+
tqdm = get_tqdm()
|
|
178
180
|
for page in tqdm(range(1, page_num + 1), leave=False):
|
|
179
181
|
url = f"https://global.finance.sina.com.cn/api/openapi.php/EsgService.getEsgStocks?page={page}&num=200"
|
|
180
182
|
r = requests.get(url)
|
|
@@ -223,10 +225,20 @@ def stock_esg_zd_sina() -> pd.DataFrame:
|
|
|
223
225
|
:return: 秩鼎
|
|
224
226
|
:rtype: pandas.DataFrame
|
|
225
227
|
"""
|
|
226
|
-
url = "https://global.finance.sina.com.cn/api/openapi.php/EsgService.getZdEsgStocks
|
|
227
|
-
|
|
228
|
+
url = "https://global.finance.sina.com.cn/api/openapi.php/EsgService.getZdEsgStocks"
|
|
229
|
+
params = {"p": "1", "num": "100"}
|
|
230
|
+
r = requests.get(url, params=params)
|
|
228
231
|
data_json = r.json()
|
|
229
|
-
|
|
232
|
+
tqdm = get_tqdm()
|
|
233
|
+
total_page = math.ceil(int(data_json["result"]["data"]["total"]) / 100)
|
|
234
|
+
temp_list = []
|
|
235
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
236
|
+
params = {"p": str(page), "num": "100"}
|
|
237
|
+
r = requests.get(url, params=params)
|
|
238
|
+
data_json = r.json()
|
|
239
|
+
temp_df = pd.DataFrame(data_json["result"]["data"]["data"])
|
|
240
|
+
temp_list.append(temp_df)
|
|
241
|
+
big_df = pd.concat(temp_list, ignore_index=True)
|
|
230
242
|
big_df.rename(
|
|
231
243
|
columns={
|
|
232
244
|
"ticker": "股票代码",
|
|
@@ -259,10 +271,20 @@ def stock_esg_hz_sina() -> pd.DataFrame:
|
|
|
259
271
|
:return: 华证指数
|
|
260
272
|
:rtype: pandas.DataFrame
|
|
261
273
|
"""
|
|
262
|
-
url = "https://global.finance.sina.com.cn/api/openapi.php/EsgService.getHzEsgStocks
|
|
263
|
-
|
|
274
|
+
url = "https://global.finance.sina.com.cn/api/openapi.php/EsgService.getHzEsgStocks"
|
|
275
|
+
params = {"p": 1, "num": "100"}
|
|
276
|
+
r = requests.get(url, params=params)
|
|
264
277
|
data_json = r.json()
|
|
265
|
-
|
|
278
|
+
total_page = math.ceil(int(data_json["result"]["data"]["total"]) / 100)
|
|
279
|
+
big_df = pd.DataFrame()
|
|
280
|
+
tqdm = get_tqdm()
|
|
281
|
+
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
282
|
+
params = {"p": str(page), "num": "100"}
|
|
283
|
+
r = requests.get(url, params=params)
|
|
284
|
+
data_json = r.json()
|
|
285
|
+
temp_df = pd.DataFrame(data_json["result"]["data"]["data"])
|
|
286
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
287
|
+
|
|
266
288
|
big_df.rename(
|
|
267
289
|
columns={
|
|
268
290
|
"date": "日期",
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/3/18 15:00
|
|
5
5
|
Desc: 东方财富网-数据中心-年报季报-分红送配
|
|
6
6
|
https://data.eastmoney.com/yjfp/
|
|
7
7
|
"""
|
|
8
8
|
|
|
9
9
|
import pandas as pd
|
|
10
10
|
import requests
|
|
11
|
+
|
|
11
12
|
from akshare.utils.tqdm import get_tqdm
|
|
12
13
|
|
|
13
14
|
|
|
@@ -39,16 +39,24 @@ def stock_fhps_detail_ths(symbol: str = "603444") -> pd.DataFrame:
|
|
|
39
39
|
temp_df["实施公告日"] = pd.to_datetime(
|
|
40
40
|
temp_df["实施公告日"], format="%Y-%m-%d", errors="coerce"
|
|
41
41
|
).dt.date
|
|
42
|
-
|
|
43
|
-
temp_df["A股股权登记日"]
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
temp_df["A股除权除息日"]
|
|
47
|
-
|
|
42
|
+
if "A股股权登记日" in temp_df.columns:
|
|
43
|
+
temp_df["A股股权登记日"] = pd.to_datetime(
|
|
44
|
+
temp_df["A股股权登记日"], format="%Y-%m-%d", errors="coerce"
|
|
45
|
+
).dt.date
|
|
46
|
+
temp_df["A股除权除息日"] = pd.to_datetime(
|
|
47
|
+
temp_df["A股除权除息日"], format="%Y-%m-%d", errors="coerce"
|
|
48
|
+
).dt.date
|
|
49
|
+
else:
|
|
50
|
+
temp_df["B股股权登记日"] = pd.to_datetime(
|
|
51
|
+
temp_df["B股股权登记日"], format="%Y-%m-%d", errors="coerce"
|
|
52
|
+
).dt.date
|
|
53
|
+
temp_df["B股除权除息日"] = pd.to_datetime(
|
|
54
|
+
temp_df["B股除权除息日"], format="%Y-%m-%d", errors="coerce"
|
|
55
|
+
).dt.date
|
|
48
56
|
temp_df.sort_values(by=["董事会日期"], ignore_index=True, inplace=True)
|
|
49
57
|
return temp_df
|
|
50
58
|
|
|
51
59
|
|
|
52
60
|
if __name__ == "__main__":
|
|
53
|
-
stock_fhps_detail_ths_df = stock_fhps_detail_ths(symbol="
|
|
61
|
+
stock_fhps_detail_ths_df = stock_fhps_detail_ths(symbol="200596")
|
|
54
62
|
print(stock_fhps_detail_ths_df)
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date: 2024/
|
|
4
|
+
Date: 2024/8/15 18:00
|
|
5
5
|
Desc: 同花顺-数据中心-资金流向
|
|
6
6
|
同花顺-数据中心-资金流向-个股资金流
|
|
7
7
|
https://data.10jqka.com.cn/funds/ggzjl/#refCountId=data_55f13c2c_254
|
|
@@ -33,7 +33,7 @@ def _get_file_content_ths(file: str = "ths.js") -> str:
|
|
|
33
33
|
:rtype: str
|
|
34
34
|
"""
|
|
35
35
|
setting_file_path = get_ths_js(file)
|
|
36
|
-
with open(setting_file_path) as f:
|
|
36
|
+
with open(setting_file_path, encoding="utf-8") as f:
|
|
37
37
|
file_data = f.read()
|
|
38
38
|
return file_data
|
|
39
39
|
|
|
@@ -61,13 +61,14 @@ def stock_fund_flow_individual(symbol: str = "即时") -> pd.DataFrame:
|
|
|
61
61
|
"Host": "data.10jqka.com.cn",
|
|
62
62
|
"Pragma": "no-cache",
|
|
63
63
|
"Referer": "http://data.10jqka.com.cn/funds/hyzjl/",
|
|
64
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
64
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
65
|
+
"Chrome/90.0.4430.85 Safari/537.36",
|
|
65
66
|
"X-Requested-With": "XMLHttpRequest",
|
|
66
67
|
}
|
|
67
68
|
url = "http://data.10jqka.com.cn/funds/ggzjl/field/code/order/desc/ajax/1/free/1/"
|
|
68
69
|
r = requests.get(url, headers=headers)
|
|
69
|
-
soup = BeautifulSoup(r.text, "lxml")
|
|
70
|
-
raw_page = soup.find("span", attrs={"class": "page_info"}).text
|
|
70
|
+
soup = BeautifulSoup(r.text, features="lxml")
|
|
71
|
+
raw_page = soup.find(name="span", attrs={"class": "page_info"}).text
|
|
71
72
|
page_num = raw_page.split("/")[1]
|
|
72
73
|
if symbol == "3日排行":
|
|
73
74
|
url = "http://data.10jqka.com.cn/funds/ggzjl/board/3/field/zdf/order/desc/page/{}/ajax/1/free/1/"
|
|
@@ -96,12 +97,13 @@ def stock_fund_flow_individual(symbol: str = "即时") -> pd.DataFrame:
|
|
|
96
97
|
"Host": "data.10jqka.com.cn",
|
|
97
98
|
"Pragma": "no-cache",
|
|
98
99
|
"Referer": "http://data.10jqka.com.cn/funds/hyzjl/",
|
|
99
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
100
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
101
|
+
"Chrome/90.0.4430.85 Safari/537.36",
|
|
100
102
|
"X-Requested-With": "XMLHttpRequest",
|
|
101
103
|
}
|
|
102
104
|
r = requests.get(url.format(page), headers=headers)
|
|
103
105
|
temp_df = pd.read_html(StringIO(r.text))[0]
|
|
104
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
106
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
105
107
|
|
|
106
108
|
del big_df["序号"]
|
|
107
109
|
big_df.reset_index(inplace=True)
|
|
@@ -155,15 +157,16 @@ def stock_fund_flow_concept(symbol: str = "即时") -> pd.DataFrame:
|
|
|
155
157
|
"Host": "data.10jqka.com.cn",
|
|
156
158
|
"Pragma": "no-cache",
|
|
157
159
|
"Referer": "http://data.10jqka.com.cn/funds/gnzjl/",
|
|
158
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
160
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
161
|
+
"Chrome/90.0.4430.85 Safari/537.36",
|
|
159
162
|
"X-Requested-With": "XMLHttpRequest",
|
|
160
163
|
}
|
|
161
164
|
url = (
|
|
162
165
|
"http://data.10jqka.com.cn/funds/gnzjl/field/tradezdf/order/desc/ajax/1/free/1/"
|
|
163
166
|
)
|
|
164
167
|
r = requests.get(url, headers=headers)
|
|
165
|
-
soup = BeautifulSoup(r.text, "lxml")
|
|
166
|
-
raw_page = soup.find("span", attrs={"class": "page_info"}).text
|
|
168
|
+
soup = BeautifulSoup(r.text, features="lxml")
|
|
169
|
+
raw_page = soup.find(name="span", attrs={"class": "page_info"}).text
|
|
167
170
|
page_num = raw_page.split("/")[1]
|
|
168
171
|
if symbol == "3日排行":
|
|
169
172
|
url = "http://data.10jqka.com.cn/funds/gnzjl/board/3/field/tradezdf/order/desc/page/{}/ajax/1/free/1/"
|
|
@@ -192,12 +195,13 @@ def stock_fund_flow_concept(symbol: str = "即时") -> pd.DataFrame:
|
|
|
192
195
|
"Host": "data.10jqka.com.cn",
|
|
193
196
|
"Pragma": "no-cache",
|
|
194
197
|
"Referer": "http://data.10jqka.com.cn/funds/gnzjl/",
|
|
195
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
198
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
199
|
+
"Chrome/90.0.4430.85 Safari/537.36",
|
|
196
200
|
"X-Requested-With": "XMLHttpRequest",
|
|
197
201
|
}
|
|
198
202
|
r = requests.get(url.format(page), headers=headers)
|
|
199
203
|
temp_df = pd.read_html(StringIO(r.text))[0]
|
|
200
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
204
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
201
205
|
|
|
202
206
|
del big_df["序号"]
|
|
203
207
|
big_df.reset_index(inplace=True)
|
|
@@ -259,15 +263,16 @@ def stock_fund_flow_industry(symbol: str = "即时") -> pd.DataFrame:
|
|
|
259
263
|
"Host": "data.10jqka.com.cn",
|
|
260
264
|
"Pragma": "no-cache",
|
|
261
265
|
"Referer": "http://data.10jqka.com.cn/funds/hyzjl/",
|
|
262
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
266
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
267
|
+
"Chrome/90.0.4430.85 Safari/537.36",
|
|
263
268
|
"X-Requested-With": "XMLHttpRequest",
|
|
264
269
|
}
|
|
265
270
|
url = (
|
|
266
271
|
"http://data.10jqka.com.cn/funds/hyzjl/field/tradezdf/order/desc/ajax/1/free/1/"
|
|
267
272
|
)
|
|
268
273
|
r = requests.get(url, headers=headers)
|
|
269
|
-
soup = BeautifulSoup(r.text, "lxml")
|
|
270
|
-
raw_page = soup.find("span", attrs={"class": "page_info"}).text
|
|
274
|
+
soup = BeautifulSoup(r.text, features="lxml")
|
|
275
|
+
raw_page = soup.find(name="span", attrs={"class": "page_info"}).text
|
|
271
276
|
page_num = raw_page.split("/")[1]
|
|
272
277
|
if symbol == "3日排行":
|
|
273
278
|
url = "http://data.10jqka.com.cn/funds/hyzjl/board/3/field/tradezdf/order/desc/page/{}/ajax/1/free/1/"
|
|
@@ -296,12 +301,13 @@ def stock_fund_flow_industry(symbol: str = "即时") -> pd.DataFrame:
|
|
|
296
301
|
"Host": "data.10jqka.com.cn",
|
|
297
302
|
"Pragma": "no-cache",
|
|
298
303
|
"Referer": "http://data.10jqka.com.cn/funds/hyzjl/",
|
|
299
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
304
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
305
|
+
"Chrome/90.0.4430.85 Safari/537.36",
|
|
300
306
|
"X-Requested-With": "XMLHttpRequest",
|
|
301
307
|
}
|
|
302
308
|
r = requests.get(url.format(page), headers=headers)
|
|
303
309
|
temp_df = pd.read_html(StringIO(r.text))[0]
|
|
304
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
310
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
305
311
|
|
|
306
312
|
del big_df["序号"]
|
|
307
313
|
big_df.reset_index(inplace=True)
|
|
@@ -361,13 +367,14 @@ def stock_fund_flow_big_deal() -> pd.DataFrame:
|
|
|
361
367
|
"Host": "data.10jqka.com.cn",
|
|
362
368
|
"Pragma": "no-cache",
|
|
363
369
|
"Referer": "http://data.10jqka.com.cn/funds/hyzjl/",
|
|
364
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
370
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
371
|
+
"Chrome/90.0.4430.85 Safari/537.36",
|
|
365
372
|
"X-Requested-With": "XMLHttpRequest",
|
|
366
373
|
}
|
|
367
374
|
url = "http://data.10jqka.com.cn/funds/ddzz/order/desc/ajax/1/free/1/"
|
|
368
375
|
r = requests.get(url, headers=headers)
|
|
369
|
-
soup = BeautifulSoup(r.text, "lxml")
|
|
370
|
-
raw_page = soup.find("span", attrs={"class": "page_info"}).text
|
|
376
|
+
soup = BeautifulSoup(r.text, features="lxml")
|
|
377
|
+
raw_page = soup.find(name="span", attrs={"class": "page_info"}).text
|
|
371
378
|
page_num = raw_page.split("/")[1]
|
|
372
379
|
url = "http://data.10jqka.com.cn/funds/ddzz/order/asc/page/{}/ajax/1/free/1/"
|
|
373
380
|
big_df = pd.DataFrame()
|
|
@@ -387,12 +394,13 @@ def stock_fund_flow_big_deal() -> pd.DataFrame:
|
|
|
387
394
|
"Host": "data.10jqka.com.cn",
|
|
388
395
|
"Pragma": "no-cache",
|
|
389
396
|
"Referer": "http://data.10jqka.com.cn/funds/hyzjl/",
|
|
390
|
-
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko)
|
|
397
|
+
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
|
|
398
|
+
"Chrome/90.0.4430.85 Safari/537.36",
|
|
391
399
|
"X-Requested-With": "XMLHttpRequest",
|
|
392
400
|
}
|
|
393
401
|
r = requests.get(url.format(page), headers=headers)
|
|
394
402
|
temp_df = pd.read_html(StringIO(r.text))[0]
|
|
395
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
403
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
396
404
|
|
|
397
405
|
big_df.columns = [
|
|
398
406
|
"成交时间",
|