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
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
#!/usr/bin/env python
|
|
2
|
+
# -*- coding:utf-8 -*-
|
|
3
|
+
"""
|
|
4
|
+
Date: 2024/11/26 18:00
|
|
5
|
+
Desc: 东方财富网-数据中心-估值分析-每日互动-每日互动-估值分析
|
|
6
|
+
https://data.eastmoney.com/gzfx/detail/300766.html
|
|
7
|
+
"""
|
|
8
|
+
|
|
9
|
+
import pandas as pd
|
|
10
|
+
|
|
11
|
+
from akshare.request import make_request_with_retry_json
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
def stock_value_em(symbol: str = "300766") -> pd.DataFrame:
|
|
15
|
+
"""
|
|
16
|
+
东方财富网-数据中心-估值分析-每日互动-每日互动-估值分析
|
|
17
|
+
https://data.eastmoney.com/gzfx/detail/300766.html
|
|
18
|
+
:param symbol: 股票代码
|
|
19
|
+
:type symbol: str
|
|
20
|
+
:return: 估值分析
|
|
21
|
+
:rtype: pandas.DataFrame
|
|
22
|
+
"""
|
|
23
|
+
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
|
24
|
+
params = {
|
|
25
|
+
"sortColumns": "TRADE_DATE",
|
|
26
|
+
"sortTypes": "-1",
|
|
27
|
+
"pageSize": "5000",
|
|
28
|
+
"pageNumber": "1",
|
|
29
|
+
"reportName": "RPT_VALUEANALYSIS_DET",
|
|
30
|
+
"columns": "ALL",
|
|
31
|
+
"quoteColumns": "",
|
|
32
|
+
"source": "WEB",
|
|
33
|
+
"client": "WEB",
|
|
34
|
+
"filter": f'(SECURITY_CODE="{symbol}")',
|
|
35
|
+
}
|
|
36
|
+
data_json = make_request_with_retry_json(url, params=params)
|
|
37
|
+
temp_json = data_json["result"]["data"]
|
|
38
|
+
temp_df = pd.DataFrame(temp_json)
|
|
39
|
+
temp_df.rename(
|
|
40
|
+
columns={
|
|
41
|
+
"TRADE_DATE": "数据日期",
|
|
42
|
+
"CLOSE_PRICE": "当日收盘价",
|
|
43
|
+
"CHANGE_RATE": "当日涨跌幅",
|
|
44
|
+
"TOTAL_MARKET_CAP": "总市值",
|
|
45
|
+
"NOTLIMITED_MARKETCAP_A": "流通市值",
|
|
46
|
+
"TOTAL_SHARES": "总股本",
|
|
47
|
+
"FREE_SHARES_A": "流通股本",
|
|
48
|
+
"PE_TTM": "PE(TTM)",
|
|
49
|
+
"PE_LAR": "PE(静)",
|
|
50
|
+
"PB_MRQ": "市净率",
|
|
51
|
+
"PEG_CAR": "PEG值",
|
|
52
|
+
"PCF_OCF_TTM": "市现率",
|
|
53
|
+
"PS_TTM": "市销率",
|
|
54
|
+
},
|
|
55
|
+
inplace=True,
|
|
56
|
+
)
|
|
57
|
+
temp_df = temp_df[
|
|
58
|
+
[
|
|
59
|
+
"数据日期",
|
|
60
|
+
"当日收盘价",
|
|
61
|
+
"当日涨跌幅",
|
|
62
|
+
"总市值",
|
|
63
|
+
"流通市值",
|
|
64
|
+
"总股本",
|
|
65
|
+
"流通股本",
|
|
66
|
+
"PE(TTM)",
|
|
67
|
+
"PE(静)",
|
|
68
|
+
"市净率",
|
|
69
|
+
"PEG值",
|
|
70
|
+
"市现率",
|
|
71
|
+
"市销率",
|
|
72
|
+
]
|
|
73
|
+
]
|
|
74
|
+
temp_df["数据日期"] = pd.to_datetime(temp_df["数据日期"], errors="coerce").dt.date
|
|
75
|
+
for item in temp_df.columns[1:]:
|
|
76
|
+
temp_df[item] = pd.to_numeric(temp_df[item], errors="coerce")
|
|
77
|
+
temp_df.sort_values(by="数据日期", ignore_index=True, inplace=True)
|
|
78
|
+
return temp_df
|
|
79
|
+
|
|
80
|
+
|
|
81
|
+
if __name__ == "__main__":
|
|
82
|
+
stock_value_em_df = stock_value_em(symbol="300766")
|
|
83
|
+
print(stock_value_em_df)
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/3/20 18:00
|
|
5
5
|
Desc: 东方财富-数据中心-年报季报
|
|
6
6
|
东方财富-数据中心-年报季报-业绩快报-业绩报表
|
|
7
7
|
https://data.eastmoney.com/bbsj/202003/yjbb.html
|
|
8
8
|
"""
|
|
9
|
+
|
|
9
10
|
import pandas as pd
|
|
10
11
|
import requests
|
|
11
|
-
|
|
12
|
+
|
|
13
|
+
from akshare.utils.tqdm import get_tqdm
|
|
12
14
|
|
|
13
15
|
|
|
14
16
|
def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
|
|
@@ -20,29 +22,36 @@ def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
|
|
|
20
22
|
:return: 业绩报表
|
|
21
23
|
:rtype: pandas.DataFrame
|
|
22
24
|
"""
|
|
25
|
+
import warnings
|
|
26
|
+
|
|
27
|
+
warnings.simplefilter(action="ignore", category=FutureWarning) # 忽略所有
|
|
23
28
|
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
|
24
29
|
params = {
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
"sortColumns": "UPDATE_DATE,SECURITY_CODE",
|
|
31
|
+
"sortTypes": "-1,-1",
|
|
32
|
+
"pageSize": "500",
|
|
33
|
+
"pageNumber": "1",
|
|
34
|
+
"reportName": "RPT_LICO_FN_CPD",
|
|
35
|
+
"columns": "ALL",
|
|
36
|
+
"filter": f"(REPORTDATE='{'-'.join([date[:4], date[4:6], date[6:]])}')",
|
|
32
37
|
}
|
|
33
38
|
r = requests.get(url, params=params)
|
|
34
39
|
data_json = r.json()
|
|
35
40
|
page_num = data_json["result"]["pages"]
|
|
36
41
|
big_df = pd.DataFrame()
|
|
42
|
+
tqdm = get_tqdm()
|
|
43
|
+
big_list = []
|
|
37
44
|
for page in tqdm(range(1, page_num + 1), leave=False):
|
|
38
|
-
params.update(
|
|
39
|
-
|
|
40
|
-
|
|
45
|
+
params.update(
|
|
46
|
+
{
|
|
47
|
+
"pageNumber": page,
|
|
48
|
+
}
|
|
49
|
+
)
|
|
41
50
|
r = requests.get(url, params=params)
|
|
42
51
|
data_json = r.json()
|
|
43
52
|
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
44
|
-
|
|
45
|
-
|
|
53
|
+
big_list.append(temp_df)
|
|
54
|
+
big_df = pd.concat(big_list, ignore_index=True)
|
|
46
55
|
big_df.reset_index(inplace=True)
|
|
47
56
|
big_df["index"] = range(1, len(big_df) + 1)
|
|
48
57
|
big_df.columns = [
|
|
@@ -57,15 +66,15 @@ def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
|
|
|
57
66
|
"_",
|
|
58
67
|
"每股收益",
|
|
59
68
|
"_",
|
|
60
|
-
"
|
|
69
|
+
"营业总收入-营业总收入",
|
|
61
70
|
"净利润-净利润",
|
|
62
71
|
"净资产收益率",
|
|
63
|
-
"
|
|
72
|
+
"营业总收入-同比增长",
|
|
64
73
|
"净利润-同比增长",
|
|
65
74
|
"每股净资产",
|
|
66
75
|
"每股经营现金流量",
|
|
67
76
|
"销售毛利率",
|
|
68
|
-
"
|
|
77
|
+
"营业总收入-季度环比增长",
|
|
69
78
|
"净利润-季度环比增长",
|
|
70
79
|
"_",
|
|
71
80
|
"_",
|
|
@@ -81,6 +90,9 @@ def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
|
|
|
81
90
|
"_",
|
|
82
91
|
"_",
|
|
83
92
|
"_",
|
|
93
|
+
"_",
|
|
94
|
+
"_",
|
|
95
|
+
"_",
|
|
84
96
|
]
|
|
85
97
|
big_df = big_df[
|
|
86
98
|
[
|
|
@@ -88,9 +100,9 @@ def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
|
|
|
88
100
|
"股票代码",
|
|
89
101
|
"股票简称",
|
|
90
102
|
"每股收益",
|
|
91
|
-
"
|
|
92
|
-
"
|
|
93
|
-
"
|
|
103
|
+
"营业总收入-营业总收入",
|
|
104
|
+
"营业总收入-同比增长",
|
|
105
|
+
"营业总收入-季度环比增长",
|
|
94
106
|
"净利润-净利润",
|
|
95
107
|
"净利润-同比增长",
|
|
96
108
|
"净利润-季度环比增长",
|
|
@@ -102,18 +114,32 @@ def stock_yjbb_em(date: str = "20200331") -> pd.DataFrame:
|
|
|
102
114
|
"最新公告日期",
|
|
103
115
|
]
|
|
104
116
|
]
|
|
105
|
-
big_df[
|
|
106
|
-
big_df[
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
big_df[
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
big_df[
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
big_df[
|
|
116
|
-
big_df[
|
|
117
|
+
big_df["每股收益"] = pd.to_numeric(big_df["每股收益"], errors="coerce")
|
|
118
|
+
big_df["营业总收入-营业总收入"] = pd.to_numeric(
|
|
119
|
+
big_df["营业总收入-营业总收入"], errors="coerce"
|
|
120
|
+
)
|
|
121
|
+
big_df["营业总收入-同比增长"] = pd.to_numeric(
|
|
122
|
+
big_df["营业总收入-同比增长"], errors="coerce"
|
|
123
|
+
)
|
|
124
|
+
big_df["营业总收入-季度环比增长"] = pd.to_numeric(
|
|
125
|
+
big_df["营业总收入-季度环比增长"], errors="coerce"
|
|
126
|
+
)
|
|
127
|
+
big_df["净利润-净利润"] = pd.to_numeric(big_df["净利润-净利润"], errors="coerce")
|
|
128
|
+
big_df["净利润-同比增长"] = pd.to_numeric(
|
|
129
|
+
big_df["净利润-同比增长"], errors="coerce"
|
|
130
|
+
)
|
|
131
|
+
big_df["净利润-季度环比增长"] = pd.to_numeric(
|
|
132
|
+
big_df["净利润-季度环比增长"], errors="coerce"
|
|
133
|
+
)
|
|
134
|
+
big_df["每股净资产"] = pd.to_numeric(big_df["每股净资产"], errors="coerce")
|
|
135
|
+
big_df["净资产收益率"] = pd.to_numeric(big_df["净资产收益率"], errors="coerce")
|
|
136
|
+
big_df["每股经营现金流量"] = pd.to_numeric(
|
|
137
|
+
big_df["每股经营现金流量"], errors="coerce"
|
|
138
|
+
)
|
|
139
|
+
big_df["销售毛利率"] = pd.to_numeric(big_df["销售毛利率"], errors="coerce")
|
|
140
|
+
big_df["最新公告日期"] = pd.to_datetime(
|
|
141
|
+
big_df["最新公告日期"], errors="coerce"
|
|
142
|
+
).dt.date
|
|
117
143
|
return big_df
|
|
118
144
|
|
|
119
145
|
|
|
@@ -5,6 +5,7 @@ Date: 2023/6/8 16:34
|
|
|
5
5
|
Desc: 巨潮资讯-首页-数据-预约披露
|
|
6
6
|
http://www.cninfo.com.cn/new/commonUrl?url=data/yypl
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
11
|
|
|
@@ -15,7 +16,8 @@ def stock_report_disclosure(
|
|
|
15
16
|
"""
|
|
16
17
|
巨潮资讯-首页-数据-预约披露
|
|
17
18
|
http://www.cninfo.com.cn/new/commonUrl?url=data/yypl
|
|
18
|
-
:param market: choice of {"沪深京": "szsh", "深市": "sz", "深主板": "szmb", "中小板": "szsme",
|
|
19
|
+
:param market: choice of {"沪深京": "szsh", "深市": "sz", "深主板": "szmb", "中小板": "szsme",
|
|
20
|
+
"创业板": "szcn", "沪市": "sh", "沪主板": "shmb", "科创板": "shkcp"}
|
|
19
21
|
:type market: str
|
|
20
22
|
:param period: 最近四期的财报
|
|
21
23
|
:type period: str
|
|
@@ -86,5 +88,7 @@ def stock_report_disclosure(
|
|
|
86
88
|
|
|
87
89
|
|
|
88
90
|
if __name__ == "__main__":
|
|
89
|
-
stock_report_disclosure_df = stock_report_disclosure(
|
|
91
|
+
stock_report_disclosure_df = stock_report_disclosure(
|
|
92
|
+
market="沪深京", period="2022年报"
|
|
93
|
+
)
|
|
90
94
|
print(stock_report_disclosure_df)
|
|
@@ -361,7 +361,7 @@ if __name__ == "__main__":
|
|
|
361
361
|
stock_yjkb_em_df = stock_yjkb_em(date="20200331")
|
|
362
362
|
print(stock_yjkb_em_df)
|
|
363
363
|
|
|
364
|
-
stock_yjyg_em_df = stock_yjyg_em(date="
|
|
364
|
+
stock_yjyg_em_df = stock_yjyg_em(date="20250331")
|
|
365
365
|
print(stock_yjyg_em_df)
|
|
366
366
|
|
|
367
367
|
stock_yysj_em_df = stock_yysj_em(symbol="沪深A股", date="20211231")
|
|
@@ -3,26 +3,30 @@
|
|
|
3
3
|
"""
|
|
4
4
|
Date: 2022/4/27 19:18
|
|
5
5
|
Desc: 东方财富网-数据中心-特色数据-一致行动人
|
|
6
|
-
|
|
6
|
+
https://data.eastmoney.com/yzxdr/
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
|
-
from tqdm import
|
|
11
|
+
from akshare.utils.tqdm import get_tqdm
|
|
11
12
|
|
|
12
13
|
from akshare.utils import demjson
|
|
13
14
|
|
|
14
15
|
|
|
15
|
-
def stock_yzxdr_em(date: str = "
|
|
16
|
+
def stock_yzxdr_em(date: str = "20240930") -> pd.DataFrame:
|
|
16
17
|
"""
|
|
17
18
|
东方财富网-数据中心-特色数据-一致行动人
|
|
18
|
-
|
|
19
|
+
https://data.eastmoney.com/yzxdr/
|
|
19
20
|
:param date: 每年的季度末时间点
|
|
20
21
|
:type date: str
|
|
21
22
|
:return: 一致行动人
|
|
22
23
|
:rtype: pandas.DataFrame
|
|
23
24
|
"""
|
|
25
|
+
import warnings
|
|
26
|
+
|
|
27
|
+
warnings.simplefilter(action="ignore", category=FutureWarning) # 忽略所有
|
|
24
28
|
date = "-".join([date[:4], date[4:6], date[6:]])
|
|
25
|
-
url = "
|
|
29
|
+
url = "https://datacenter.eastmoney.com/api/data/get"
|
|
26
30
|
params = {
|
|
27
31
|
"type": "RPTA_WEB_YZXDRINDEX",
|
|
28
32
|
"sty": "ALL",
|
|
@@ -40,24 +44,19 @@ def stock_yzxdr_em(date: str = "20200930") -> pd.DataFrame:
|
|
|
40
44
|
data_json = demjson.decode(data_text[data_text.find("{") : -1])
|
|
41
45
|
total_pages = data_json["result"]["pages"]
|
|
42
46
|
big_df = pd.DataFrame()
|
|
47
|
+
tqdm = get_tqdm()
|
|
43
48
|
for page in tqdm(range(1, total_pages + 1), leave=False):
|
|
44
|
-
params
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
"st": "noticedate",
|
|
51
|
-
"sr": "-1",
|
|
52
|
-
"var": "mwUyirVm",
|
|
53
|
-
"filter": f"(enddate='{date}')",
|
|
54
|
-
"rt": "53575609",
|
|
55
|
-
}
|
|
49
|
+
params.update(
|
|
50
|
+
{
|
|
51
|
+
"p": str(page),
|
|
52
|
+
"filter": f"(enddate='{date}')",
|
|
53
|
+
}
|
|
54
|
+
)
|
|
56
55
|
r = requests.get(url, params=params)
|
|
57
56
|
data_text = r.text
|
|
58
57
|
data_json = demjson.decode(data_text[data_text.find("{") : -1])
|
|
59
58
|
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
60
|
-
big_df = pd.concat([big_df, temp_df], ignore_index=True)
|
|
59
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
61
60
|
|
|
62
61
|
big_df.reset_index(inplace=True)
|
|
63
62
|
big_df["index"] = range(1, len(big_df) + 1)
|
|
@@ -78,8 +77,8 @@ def stock_yzxdr_em(date: str = "20200930") -> pd.DataFrame:
|
|
|
78
77
|
"数据日期",
|
|
79
78
|
"股票市场",
|
|
80
79
|
]
|
|
81
|
-
big_df["数据日期"] = pd.to_datetime(big_df["数据日期"])
|
|
82
|
-
big_df["公告日期"] = pd.to_datetime(big_df["公告日期"])
|
|
80
|
+
big_df["数据日期"] = pd.to_datetime(big_df["数据日期"], errors="coerce")
|
|
81
|
+
big_df["公告日期"] = pd.to_datetime(big_df["公告日期"], errors="coerce")
|
|
83
82
|
|
|
84
83
|
big_df = big_df[
|
|
85
84
|
[
|
|
@@ -95,10 +94,13 @@ def stock_yzxdr_em(date: str = "20200930") -> pd.DataFrame:
|
|
|
95
94
|
"公告日期",
|
|
96
95
|
]
|
|
97
96
|
]
|
|
98
|
-
big_df[
|
|
97
|
+
big_df["公告日期"] = pd.to_datetime(big_df["公告日期"], errors="coerce").dt.date
|
|
98
|
+
big_df["持股数量"] = pd.to_numeric(big_df["持股数量"], errors="coerce")
|
|
99
|
+
big_df["持股比例"] = pd.to_numeric(big_df["持股比例"], errors="coerce")
|
|
100
|
+
big_df["持股数量变动"] = pd.to_numeric(big_df["持股数量变动"], errors="coerce")
|
|
99
101
|
return big_df
|
|
100
102
|
|
|
101
103
|
|
|
102
104
|
if __name__ == "__main__":
|
|
103
|
-
stock_yzxdr_em_df = stock_yzxdr_em(date="
|
|
105
|
+
stock_yzxdr_em_df = stock_yzxdr_em(date="20240930")
|
|
104
106
|
print(stock_yzxdr_em_df)
|
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date:
|
|
4
|
+
Date: 2025/2/11 20:32
|
|
5
5
|
Desc: 东方财富网-数据中心-重大合同-重大合同明细
|
|
6
6
|
https://data.eastmoney.com/zdht/mx.html
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import pandas as pd
|
|
9
10
|
import requests
|
|
10
|
-
from tqdm import
|
|
11
|
+
from akshare.utils.tqdm import get_tqdm
|
|
11
12
|
|
|
12
13
|
|
|
13
14
|
def stock_zdhtmx_em(
|
|
@@ -16,9 +17,16 @@ def stock_zdhtmx_em(
|
|
|
16
17
|
"""
|
|
17
18
|
东方财富网-数据中心-重大合同-重大合同明细
|
|
18
19
|
https://data.eastmoney.com/zdht/mx.html
|
|
20
|
+
:param start_date: 开始日期, eg 20200819
|
|
21
|
+
:type start_date: str
|
|
22
|
+
:param end_date: 结束日期, eg 20230819
|
|
23
|
+
:type end_date: str
|
|
19
24
|
:return: 股东大会
|
|
20
25
|
:rtype: pandas.DataFrame
|
|
21
26
|
"""
|
|
27
|
+
import warnings
|
|
28
|
+
|
|
29
|
+
warnings.filterwarnings(action="ignore", category=FutureWarning)
|
|
22
30
|
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
|
23
31
|
params = {
|
|
24
32
|
"sortColumns": "DIM_RDATE",
|
|
@@ -28,12 +36,14 @@ def stock_zdhtmx_em(
|
|
|
28
36
|
"columns": "ALL",
|
|
29
37
|
"token": "894050c76af8597a853f5b408b759f5d",
|
|
30
38
|
"reportName": "RPTA_WEB_ZDHT_LIST",
|
|
31
|
-
"filter": f"""(DIM_RDATE>='{"-".join([start_date[:4], start_date[4:6], start_date[6:]])}')
|
|
39
|
+
"filter": f"""(DIM_RDATE>='{"-".join([start_date[:4], start_date[4:6], start_date[6:]])}')
|
|
40
|
+
(DIM_RDATE<='{"-".join([end_date[:4], end_date[4:6], end_date[6:]])}')""",
|
|
32
41
|
}
|
|
33
42
|
r = requests.get(url, params=params)
|
|
34
43
|
data_json = r.json()
|
|
35
44
|
total_page = data_json["result"]["pages"]
|
|
36
45
|
big_df = pd.DataFrame()
|
|
46
|
+
tqdm = get_tqdm()
|
|
37
47
|
for page in tqdm(range(1, total_page + 1), leave=False):
|
|
38
48
|
params.update(
|
|
39
49
|
{
|
|
@@ -43,7 +53,7 @@ def stock_zdhtmx_em(
|
|
|
43
53
|
r = requests.get(url, params=params)
|
|
44
54
|
data_json = r.json()
|
|
45
55
|
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
46
|
-
big_df = pd.concat([big_df, temp_df], axis=0, ignore_index=True)
|
|
56
|
+
big_df = pd.concat(objs=[big_df, temp_df], axis=0, ignore_index=True)
|
|
47
57
|
big_df.reset_index(inplace=True)
|
|
48
58
|
big_df["index"] = big_df["index"] + 1
|
|
49
59
|
big_df.rename(
|
|
@@ -101,8 +111,12 @@ def stock_zdhtmx_em(
|
|
|
101
111
|
big_df["公告日期"] = pd.to_datetime(big_df["公告日期"], errors="coerce").dt.date
|
|
102
112
|
big_df["合同金额"] = pd.to_numeric(big_df["合同金额"], errors="coerce")
|
|
103
113
|
big_df["上年度营业收入"] = pd.to_numeric(big_df["上年度营业收入"], errors="coerce")
|
|
104
|
-
big_df["占上年度营业收入比例"] = pd.to_numeric(
|
|
105
|
-
|
|
114
|
+
big_df["占上年度营业收入比例"] = pd.to_numeric(
|
|
115
|
+
big_df["占上年度营业收入比例"], errors="coerce"
|
|
116
|
+
)
|
|
117
|
+
big_df["最新财务报表的营业收入"] = pd.to_numeric(
|
|
118
|
+
big_df["最新财务报表的营业收入"], errors="coerce"
|
|
119
|
+
)
|
|
106
120
|
return big_df
|
|
107
121
|
|
|
108
122
|
|
|
@@ -5,11 +5,14 @@ Date: 2022/10/10 17:26
|
|
|
5
5
|
Desc: 百度股市通- A 股或指数-股评-投票
|
|
6
6
|
https://gushitong.baidu.com/index/ab-000001
|
|
7
7
|
"""
|
|
8
|
+
|
|
8
9
|
import requests
|
|
9
10
|
import pandas as pd
|
|
10
11
|
|
|
11
12
|
|
|
12
|
-
def stock_zh_vote_baidu(
|
|
13
|
+
def stock_zh_vote_baidu(
|
|
14
|
+
symbol: str = "000001", indicator: str = "指数"
|
|
15
|
+
) -> pd.DataFrame:
|
|
13
16
|
"""
|
|
14
17
|
百度股市通- A 股或指数-股评-投票
|
|
15
18
|
https://gushitong.baidu.com/index/ab-000001
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
#!/usr/bin/env python
|
|
2
2
|
# -*- coding:utf-8 -*-
|
|
3
3
|
"""
|
|
4
|
-
Date: 2024/
|
|
4
|
+
Date: 2024/11/22 21:30
|
|
5
5
|
Desc: 首页-行情中心-涨停板行情-涨停股池
|
|
6
6
|
https://quote.eastmoney.com/ztb/detail#type=ztgc
|
|
7
7
|
|
|
@@ -21,7 +21,7 @@ import pandas as pd
|
|
|
21
21
|
import requests
|
|
22
22
|
|
|
23
23
|
|
|
24
|
-
def stock_zt_pool_em(date: str = "
|
|
24
|
+
def stock_zt_pool_em(date: str = "20241008") -> pd.DataFrame:
|
|
25
25
|
"""
|
|
26
26
|
东方财富网-行情中心-涨停板行情-涨停股池
|
|
27
27
|
https://quote.eastmoney.com/ztb/detail#type=ztgc
|
|
@@ -38,12 +38,13 @@ def stock_zt_pool_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
38
38
|
"pagesize": "10000",
|
|
39
39
|
"sort": "fbt:asc",
|
|
40
40
|
"date": date,
|
|
41
|
-
"_": "1621590489736",
|
|
42
41
|
}
|
|
43
42
|
r = requests.get(url, params=params)
|
|
44
43
|
data_json = r.json()
|
|
45
44
|
if data_json["data"] is None:
|
|
46
45
|
return pd.DataFrame()
|
|
46
|
+
if len(data_json["data"]["pool"]) == 0:
|
|
47
|
+
return pd.DataFrame()
|
|
47
48
|
temp_df = pd.DataFrame(data_json["data"]["pool"])
|
|
48
49
|
temp_df.reset_index(inplace=True)
|
|
49
50
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -120,15 +121,16 @@ def stock_zt_pool_previous_em(date: str = "20240415") -> pd.DataFrame:
|
|
|
120
121
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
121
122
|
"dpt": "wz.ztzt",
|
|
122
123
|
"Pageindex": "0",
|
|
123
|
-
"pagesize": "
|
|
124
|
+
"pagesize": "5000",
|
|
124
125
|
"sort": "zs:desc",
|
|
125
126
|
"date": date,
|
|
126
|
-
"_": "1621590489736",
|
|
127
127
|
}
|
|
128
128
|
r = requests.get(url, params=params)
|
|
129
129
|
data_json = r.json()
|
|
130
130
|
if data_json["data"] is None:
|
|
131
131
|
return pd.DataFrame()
|
|
132
|
+
if len(data_json["data"]["pool"]) == 0:
|
|
133
|
+
return pd.DataFrame()
|
|
132
134
|
temp_df = pd.DataFrame(data_json["data"]["pool"])
|
|
133
135
|
temp_df.reset_index(inplace=True)
|
|
134
136
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -182,7 +184,7 @@ def stock_zt_pool_previous_em(date: str = "20240415") -> pd.DataFrame:
|
|
|
182
184
|
return temp_df
|
|
183
185
|
|
|
184
186
|
|
|
185
|
-
def stock_zt_pool_strong_em(date: str = "
|
|
187
|
+
def stock_zt_pool_strong_em(date: str = "20241231") -> pd.DataFrame:
|
|
186
188
|
"""
|
|
187
189
|
东方财富网-行情中心-涨停板行情-强势股池
|
|
188
190
|
https://quote.eastmoney.com/ztb/detail#type=qsgc
|
|
@@ -196,15 +198,16 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
196
198
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
197
199
|
"dpt": "wz.ztzt",
|
|
198
200
|
"Pageindex": "0",
|
|
199
|
-
"pagesize": "
|
|
201
|
+
"pagesize": "5000",
|
|
200
202
|
"sort": "zdp:desc",
|
|
201
203
|
"date": date,
|
|
202
|
-
"_": "1621590489736",
|
|
203
204
|
}
|
|
204
205
|
r = requests.get(url, params=params)
|
|
205
206
|
data_json = r.json()
|
|
206
207
|
if data_json["data"] is None:
|
|
207
208
|
return pd.DataFrame()
|
|
209
|
+
if len(data_json["data"]["pool"]) == 0:
|
|
210
|
+
return pd.DataFrame()
|
|
208
211
|
temp_df = pd.DataFrame(data_json["data"]["pool"])
|
|
209
212
|
temp_df.reset_index(inplace=True)
|
|
210
213
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -255,10 +258,22 @@ def stock_zt_pool_strong_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
255
258
|
]
|
|
256
259
|
temp_df["最新价"] = temp_df["最新价"] / 1000
|
|
257
260
|
temp_df["涨停价"] = temp_df["涨停价"] / 1000
|
|
261
|
+
explained_map = {1: "60日新高", 2: "近期多次涨停", 3: "60日新高且近期多次涨停"}
|
|
262
|
+
temp_df["入选理由"] = temp_df["入选理由"].apply(lambda x: explained_map[x])
|
|
263
|
+
temp_df["是否新高"] = temp_df["是否新高"].apply(lambda x: "是" if x == 1 else "否")
|
|
264
|
+
temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce")
|
|
265
|
+
temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce")
|
|
266
|
+
temp_df["涨停价"] = pd.to_numeric(temp_df["涨停价"], errors="coerce")
|
|
267
|
+
temp_df["成交额"] = pd.to_numeric(temp_df["成交额"], errors="coerce")
|
|
268
|
+
temp_df["流通市值"] = pd.to_numeric(temp_df["流通市值"], errors="coerce")
|
|
269
|
+
temp_df["总市值"] = pd.to_numeric(temp_df["总市值"], errors="coerce")
|
|
270
|
+
temp_df["换手率"] = pd.to_numeric(temp_df["换手率"], errors="coerce")
|
|
271
|
+
temp_df["涨速"] = pd.to_numeric(temp_df["涨速"], errors="coerce")
|
|
272
|
+
temp_df["量比"] = pd.to_numeric(temp_df["量比"], errors="coerce")
|
|
258
273
|
return temp_df
|
|
259
274
|
|
|
260
275
|
|
|
261
|
-
def stock_zt_pool_sub_new_em(date: str = "
|
|
276
|
+
def stock_zt_pool_sub_new_em(date: str = "20241231") -> pd.DataFrame:
|
|
262
277
|
"""
|
|
263
278
|
东方财富网-行情中心-涨停板行情-次新股池
|
|
264
279
|
https://quote.eastmoney.com/ztb/detail#type=cxgc
|
|
@@ -272,14 +287,13 @@ def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
272
287
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
273
288
|
"dpt": "wz.ztzt",
|
|
274
289
|
"Pageindex": "0",
|
|
275
|
-
"pagesize": "
|
|
290
|
+
"pagesize": "5000",
|
|
276
291
|
"sort": "ods:asc",
|
|
277
292
|
"date": date,
|
|
278
|
-
"_": "1621590489736",
|
|
279
293
|
}
|
|
280
294
|
r = requests.get(url, params=params)
|
|
281
295
|
data_json = r.json()
|
|
282
|
-
if data_json["data"]["pool"] == 0:
|
|
296
|
+
if len(data_json["data"]["pool"]) == 0:
|
|
283
297
|
return pd.DataFrame()
|
|
284
298
|
temp_df = pd.DataFrame(data_json["data"]["pool"])
|
|
285
299
|
temp_df.reset_index(inplace=True)
|
|
@@ -333,13 +347,14 @@ def stock_zt_pool_sub_new_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
333
347
|
temp_df["最新价"] = temp_df["最新价"] / 1000
|
|
334
348
|
temp_df["涨停价"] = temp_df["涨停价"] / 1000
|
|
335
349
|
temp_df.loc[temp_df["涨停价"] > 100000, "涨停价"] = pd.NA
|
|
336
|
-
temp_df["开板日期"] = pd.to_datetime(temp_df["开板日期"], format="%Y%m%d")
|
|
337
|
-
temp_df["上市日期"] = pd.to_datetime(temp_df["上市日期"], format="%Y%m%d")
|
|
350
|
+
temp_df["开板日期"] = pd.to_datetime(temp_df["开板日期"], format="%Y%m%d").dt.date
|
|
351
|
+
temp_df["上市日期"] = pd.to_datetime(temp_df["上市日期"], format="%Y%m%d").dt.date
|
|
338
352
|
temp_df.loc[temp_df["上市日期"] == 0, "上市日期"] = pd.NaT
|
|
353
|
+
temp_df["是否新高"] = temp_df["是否新高"].apply(lambda x: "是" if x == 1 else "否")
|
|
339
354
|
return temp_df
|
|
340
355
|
|
|
341
356
|
|
|
342
|
-
def stock_zt_pool_zbgc_em(date: str = "
|
|
357
|
+
def stock_zt_pool_zbgc_em(date: str = "20241011") -> pd.DataFrame:
|
|
343
358
|
"""
|
|
344
359
|
东方财富网-行情中心-涨停板行情-炸板股池
|
|
345
360
|
https://quote.eastmoney.com/ztb/detail#type=zbgc
|
|
@@ -358,15 +373,16 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
358
373
|
"ut": "7eea3edcaed734bea9cbfc24409ed989",
|
|
359
374
|
"dpt": "wz.ztzt",
|
|
360
375
|
"Pageindex": "0",
|
|
361
|
-
"pagesize": "
|
|
376
|
+
"pagesize": "5000",
|
|
362
377
|
"sort": "fbt:asc",
|
|
363
378
|
"date": date,
|
|
364
|
-
"_": "1621590489736",
|
|
365
379
|
}
|
|
366
380
|
r = requests.get(url, params=params)
|
|
367
381
|
data_json = r.json()
|
|
368
382
|
if data_json["data"] is None:
|
|
369
383
|
return pd.DataFrame()
|
|
384
|
+
if len(data_json["data"]["pool"]) == 0:
|
|
385
|
+
return pd.DataFrame()
|
|
370
386
|
temp_df = pd.DataFrame(data_json["data"]["pool"])
|
|
371
387
|
temp_df.reset_index(inplace=True)
|
|
372
388
|
temp_df["index"] = range(1, len(temp_df) + 1)
|
|
@@ -420,7 +436,7 @@ def stock_zt_pool_zbgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
420
436
|
return temp_df
|
|
421
437
|
|
|
422
438
|
|
|
423
|
-
def stock_zt_pool_dtgc_em(date: str = "
|
|
439
|
+
def stock_zt_pool_dtgc_em(date: str = "20241011") -> pd.DataFrame:
|
|
424
440
|
"""
|
|
425
441
|
东方财富网-行情中心-涨停板行情-跌停股池
|
|
426
442
|
https://quote.eastmoney.com/ztb/detail#type=dtgc
|
|
@@ -442,7 +458,6 @@ def stock_zt_pool_dtgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
442
458
|
"pagesize": "10000",
|
|
443
459
|
"sort": "fund:asc",
|
|
444
460
|
"date": date,
|
|
445
|
-
"_": "1621590489736",
|
|
446
461
|
}
|
|
447
462
|
r = requests.get(url, params=params)
|
|
448
463
|
data_json = r.json()
|
|
@@ -508,20 +523,20 @@ def stock_zt_pool_dtgc_em(date: str = "20231129") -> pd.DataFrame:
|
|
|
508
523
|
|
|
509
524
|
|
|
510
525
|
if __name__ == "__main__":
|
|
511
|
-
stock_zt_pool_em_df = stock_zt_pool_em(date="
|
|
526
|
+
stock_zt_pool_em_df = stock_zt_pool_em(date="20241008")
|
|
512
527
|
print(stock_zt_pool_em_df)
|
|
513
528
|
|
|
514
529
|
stock_zt_pool_previous_em_df = stock_zt_pool_previous_em(date="20240415")
|
|
515
530
|
print(stock_zt_pool_previous_em_df)
|
|
516
531
|
|
|
517
|
-
stock_zt_pool_strong_em_df = stock_zt_pool_strong_em(date="
|
|
532
|
+
stock_zt_pool_strong_em_df = stock_zt_pool_strong_em(date="20241231")
|
|
518
533
|
print(stock_zt_pool_strong_em_df)
|
|
519
534
|
|
|
520
|
-
stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="
|
|
535
|
+
stock_zt_pool_sub_new_em_df = stock_zt_pool_sub_new_em(date="20241231")
|
|
521
536
|
print(stock_zt_pool_sub_new_em_df)
|
|
522
537
|
|
|
523
|
-
stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="
|
|
538
|
+
stock_zt_pool_zbgc_em_df = stock_zt_pool_zbgc_em(date="20241011")
|
|
524
539
|
print(stock_zt_pool_zbgc_em_df)
|
|
525
540
|
|
|
526
|
-
stock_zt_pool_dtgc_em_df = stock_zt_pool_dtgc_em(date="
|
|
541
|
+
stock_zt_pool_dtgc_em_df = stock_zt_pool_dtgc_em(date="20241011")
|
|
527
542
|
print(stock_zt_pool_dtgc_em_df)
|