akshare 1.12.99__py3-none-any.whl → 1.15.72__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.

Potentially problematic release.


This version of akshare might be problematic. Click here for more details.

Files changed (236) hide show
  1. akshare/__init__.py +441 -138
  2. akshare/air/air_hebei.py +79 -53
  3. akshare/air/air_zhenqi.py +29 -43
  4. akshare/air/sunrise_tad.py +32 -17
  5. akshare/bank/bank_cbirc_2020.py +12 -9
  6. akshare/bond/bond_cb_ths.py +17 -9
  7. akshare/bond/bond_china.py +38 -39
  8. akshare/bond/bond_china_money.py +75 -48
  9. akshare/bond/bond_info_cm.py +28 -8
  10. akshare/bond/bond_issue_cninfo.py +73 -30
  11. akshare/bond/bond_zh_cov.py +1 -1
  12. akshare/bond/bond_zh_sina.py +57 -51
  13. akshare/cal/__init__.py +0 -0
  14. akshare/cal/rv.py +170 -0
  15. akshare/cost/cost_living.py +7 -5
  16. akshare/currency/currency_safe.py +7 -6
  17. akshare/data/cninfo.js +15 -0
  18. akshare/datasets.py +10 -21
  19. akshare/economic/macro_bank.py +95 -653
  20. akshare/economic/macro_china.py +772 -1024
  21. akshare/economic/macro_china_hk.py +65 -243
  22. akshare/economic/macro_china_nbs.py +24 -7
  23. akshare/economic/macro_constitute.py +17 -12
  24. akshare/economic/macro_euro.py +13 -6
  25. akshare/economic/macro_finance_ths.py +133 -0
  26. akshare/economic/macro_info_ws.py +100 -0
  27. akshare/economic/macro_japan.py +5 -4
  28. akshare/economic/macro_other.py +12 -9
  29. akshare/economic/macro_usa.py +376 -1940
  30. akshare/economic/marco_cnbs.py +11 -6
  31. akshare/energy/energy_carbon.py +94 -125
  32. akshare/event/migration.py +3 -2
  33. akshare/exceptions.py +43 -0
  34. akshare/file_fold/calendar.json +245 -2
  35. akshare/fortune/fortune_500.py +15 -48
  36. akshare/fund/fund_amac.py +157 -75
  37. akshare/fund/fund_em.py +191 -184
  38. akshare/fund/fund_etf_em.py +16 -15
  39. akshare/fund/fund_etf_sina.py +71 -23
  40. akshare/fund/fund_etf_ths.py +93 -0
  41. akshare/fund/fund_fee_em.py +98 -0
  42. akshare/fund/fund_portfolio_em.py +60 -50
  43. akshare/fund/fund_rank_em.py +91 -82
  44. akshare/fund/fund_report_cninfo.py +63 -48
  45. akshare/fund/fund_scale_sina.py +20 -10
  46. akshare/fund/fund_xq.py +139 -109
  47. akshare/futures/cons.py +8 -31
  48. akshare/futures/cot.py +185 -137
  49. akshare/futures/futures_basis.py +97 -32
  50. akshare/futures/futures_comm_ctp.py +37 -0
  51. akshare/futures/futures_comm_qihuo.py +74 -45
  52. akshare/futures/futures_daily_bar.py +121 -184
  53. akshare/futures/futures_hf_em.py +66 -61
  54. akshare/futures/futures_hq_sina.py +79 -61
  55. akshare/futures/futures_index_ccidx.py +6 -3
  56. akshare/futures/futures_inventory_99.py +61 -272
  57. akshare/futures/futures_news_shmet.py +4 -2
  58. akshare/futures/futures_roll_yield.py +12 -25
  59. akshare/futures/futures_spot_stock_em.py +19 -13
  60. akshare/futures/futures_stock_js.py +14 -12
  61. akshare/futures/futures_to_spot.py +38 -33
  62. akshare/futures/futures_warehouse_receipt.py +75 -71
  63. akshare/futures/futures_zh_sina.py +5 -5
  64. akshare/futures/symbol_var.py +18 -13
  65. akshare/futures_derivative/futures_contract_info_czce.py +60 -52
  66. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  67. akshare/futures_derivative/futures_contract_info_shfe.py +46 -35
  68. akshare/futures_derivative/futures_cot_sina.py +26 -19
  69. akshare/futures_derivative/futures_spot_sys.py +21 -8
  70. akshare/fx/currency_investing.py +19 -285
  71. akshare/index/index_cflp.py +29 -26
  72. akshare/index/index_cni.py +86 -88
  73. akshare/index/index_cons.py +26 -10
  74. akshare/index/index_cx.py +248 -47
  75. akshare/index/index_drewry.py +17 -16
  76. akshare/index/index_option_qvix.py +329 -0
  77. akshare/index/index_research_fund_sw.py +134 -0
  78. akshare/index/{index_sw_research.py → index_research_sw.py} +122 -58
  79. akshare/index/index_spot.py +9 -5
  80. akshare/index/index_stock_hk.py +35 -16
  81. akshare/index/index_stock_us_sina.py +1 -1
  82. akshare/index/index_stock_zh.py +180 -89
  83. akshare/index/index_stock_zh_csindex.py +15 -369
  84. akshare/index/index_sw.py +62 -34
  85. akshare/index/index_yw.py +46 -23
  86. akshare/index/index_zh_a_scope.py +48 -0
  87. akshare/index/index_zh_em.py +6 -4
  88. akshare/interest_rate/interbank_rate_em.py +14 -9
  89. akshare/movie/artist_yien.py +32 -5
  90. akshare/movie/movie_yien.py +92 -18
  91. akshare/movie/video_yien.py +28 -5
  92. akshare/news/news_baidu.py +78 -44
  93. akshare/news/news_cctv.py +38 -38
  94. akshare/news/news_stock.py +6 -3
  95. akshare/nlp/nlp_interface.py +7 -8
  96. akshare/option/cons.py +11 -11
  97. akshare/option/option_comm_qihuo.py +86 -0
  98. akshare/option/option_commodity.py +178 -51
  99. akshare/option/option_daily_stats_sse_szse.py +146 -0
  100. akshare/option/option_em.py +147 -138
  101. akshare/option/option_finance_sina.py +160 -137
  102. akshare/option/option_lhb_em.py +62 -56
  103. akshare/option/option_risk_indicator_sse.py +17 -14
  104. akshare/other/other_car_cpca.py +934 -0
  105. akshare/other/{other_car.py → other_car_gasgoo.py} +15 -54
  106. akshare/qdii/__init__.py +0 -0
  107. akshare/qdii/qdii_jsl.py +233 -0
  108. akshare/request.py +117 -0
  109. akshare/spot/spot_hog_soozhu.py +232 -0
  110. akshare/spot/spot_price_qh.py +121 -0
  111. akshare/spot/spot_sge.py +63 -10
  112. akshare/stock/stock_allotment_cninfo.py +10 -9
  113. akshare/stock/stock_board_concept_em.py +23 -14
  114. akshare/stock/stock_board_industry_em.py +40 -34
  115. akshare/stock/stock_cg_equity_mortgage.py +15 -11
  116. akshare/stock/stock_cg_guarantee.py +41 -51
  117. akshare/stock/stock_cg_lawsuit.py +36 -35
  118. akshare/stock/stock_dividend_cninfo.py +12 -6
  119. akshare/stock/stock_dzjy_em.py +347 -260
  120. akshare/stock/stock_fund_em.py +332 -84
  121. akshare/stock/stock_hk_famous.py +108 -0
  122. akshare/stock/stock_hk_sina.py +8 -7
  123. akshare/stock/stock_hold_control_cninfo.py +100 -15
  124. akshare/stock/stock_hold_control_em.py +4 -3
  125. akshare/stock/stock_hold_num_cninfo.py +18 -12
  126. akshare/stock/stock_hot_rank_em.py +2 -1
  127. akshare/stock/stock_hot_search_baidu.py +5 -2
  128. akshare/stock/stock_industry_cninfo.py +24 -18
  129. akshare/stock/stock_industry_pe_cninfo.py +45 -31
  130. akshare/stock/stock_industry_sw.py +9 -10
  131. akshare/stock/stock_info.py +25 -15
  132. akshare/stock/stock_info_em.py +5 -2
  133. akshare/stock/stock_intraday_em.py +5 -2
  134. akshare/stock/stock_intraday_sina.py +22 -18
  135. akshare/stock/stock_ipo_summary_cninfo.py +25 -10
  136. akshare/stock/stock_new_cninfo.py +32 -19
  137. akshare/stock/stock_news_cx.py +39 -0
  138. akshare/stock/stock_profile_cninfo.py +9 -8
  139. akshare/stock/stock_rank_forecast.py +8 -6
  140. akshare/stock/stock_share_changes_cninfo.py +18 -14
  141. akshare/stock/stock_share_hold.py +24 -19
  142. akshare/stock/stock_summary.py +54 -26
  143. akshare/stock/stock_us_famous.py +15 -6
  144. akshare/stock/stock_us_pink.py +7 -5
  145. akshare/stock/stock_us_sina.py +15 -12
  146. akshare/stock/stock_xq.py +38 -12
  147. akshare/stock/stock_zh_a_sina.py +53 -78
  148. akshare/stock/stock_zh_b_sina.py +32 -55
  149. akshare/stock/stock_zh_kcb_report.py +11 -9
  150. akshare/stock/stock_zh_kcb_sina.py +67 -64
  151. akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
  152. akshare/stock_feature/stock_a_high_low.py +5 -2
  153. akshare/stock_feature/stock_a_indicator.py +12 -9
  154. akshare/stock_feature/stock_a_pe_and_pb.py +27 -6
  155. akshare/stock_feature/stock_account_em.py +58 -40
  156. akshare/stock_feature/stock_analyst_em.py +36 -27
  157. akshare/stock_feature/stock_board_industry_ths.py +136 -400
  158. akshare/stock_feature/stock_comment_em.py +118 -85
  159. akshare/stock_feature/stock_concept_futu.py +183 -0
  160. akshare/stock_feature/stock_cyq_em.py +58 -54
  161. akshare/stock_feature/stock_disclosure_cninfo.py +147 -102
  162. akshare/stock_feature/stock_esg_sina.py +216 -11
  163. akshare/stock_feature/stock_fhps_em.py +60 -25
  164. akshare/stock_feature/stock_fhps_ths.py +25 -6
  165. akshare/stock_feature/stock_fund_flow.py +38 -25
  166. akshare/stock_feature/stock_gdfx_em.py +180 -95
  167. akshare/stock_feature/stock_gdhs.py +73 -49
  168. akshare/stock_feature/stock_gpzy_em.py +78 -46
  169. akshare/stock_feature/stock_hist_em.py +55 -23
  170. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  171. akshare/stock_feature/stock_hsgt_em.py +184 -452
  172. akshare/stock_feature/stock_info.py +52 -29
  173. akshare/stock_feature/stock_inner_trade_xq.py +39 -31
  174. akshare/stock_feature/stock_irm_cninfo.py +32 -9
  175. akshare/stock_feature/stock_jgdy_em.py +41 -38
  176. akshare/stock_feature/stock_lh_yybpm.py +36 -37
  177. akshare/stock_feature/stock_lhb_em.py +135 -71
  178. akshare/stock_feature/stock_lhb_sina.py +93 -46
  179. akshare/stock_feature/stock_margin_em.py +102 -0
  180. akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -15
  181. akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +23 -19
  182. akshare/stock_feature/stock_market_legu.py +13 -8
  183. akshare/stock_feature/stock_pankou_em.py +72 -34
  184. akshare/stock_feature/stock_report_em.py +244 -54
  185. akshare/stock_feature/stock_research_report_em.py +48 -19
  186. akshare/stock_feature/stock_sns_sseinfo.py +15 -12
  187. akshare/stock_feature/stock_sy_em.py +86 -33
  188. akshare/stock_feature/stock_technology_ths.py +152 -120
  189. akshare/stock_feature/stock_tfp_em.py +35 -13
  190. akshare/stock_feature/stock_three_report_em.py +119 -77
  191. akshare/stock_feature/stock_ttm_lyr.py +4 -7
  192. akshare/stock_feature/stock_value_em.py +83 -0
  193. akshare/stock_feature/stock_wencai.py +21 -9
  194. akshare/stock_feature/stock_yjyg_em.py +63 -28
  195. akshare/stock_feature/stock_zf_pg.py +61 -38
  196. akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
  197. akshare/stock_feature/stock_ztb_em.py +62 -40
  198. akshare/stock_fundamental/stock_finance.py +150 -58
  199. akshare/stock_fundamental/stock_finance_ths.py +116 -31
  200. akshare/stock_fundamental/stock_mda_ym.py +5 -3
  201. akshare/stock_fundamental/stock_notice.py +29 -15
  202. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  203. akshare/stock_fundamental/stock_profit_forecast_ths.py +19 -10
  204. akshare/stock_fundamental/stock_register_em.py +448 -0
  205. akshare/stock_fundamental/stock_restricted_em.py +79 -32
  206. akshare/stock_fundamental/stock_zygc.py +10 -8
  207. akshare/stock_fundamental/stock_zyjs_ths.py +5 -3
  208. akshare/tool/trade_date_hist.py +4 -3
  209. akshare/utils/cons.py +10 -0
  210. akshare/utils/context.py +43 -0
  211. akshare/utils/demjson.py +2 -2
  212. akshare/utils/func.py +26 -0
  213. akshare/utils/tqdm.py +13 -3
  214. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/METADATA +52 -69
  215. akshare-1.15.72.dist-info/RECORD +385 -0
  216. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/WHEEL +1 -1
  217. tests/test_func.py +3 -5
  218. akshare/bond/bond_futures.py +0 -50
  219. akshare/bond/bond_investing.py +0 -139
  220. akshare/crypto/crypto_hist_investing.py +0 -249
  221. akshare/fortune/fortune_it_juzi.py +0 -123
  222. akshare/futures/futures_international.py +0 -170
  223. akshare/futures/futures_news_baidu.py +0 -54
  224. akshare/futures/inventory_data.py +0 -100
  225. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  226. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  227. akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
  228. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  229. akshare/index/index_fear_greed_funddb.py +0 -71
  230. akshare/index/index_investing.py +0 -232
  231. akshare/sport/sport_olympic_winter.py +0 -39
  232. akshare/stock_feature/stock_board_concept_ths.py +0 -422
  233. akshare/stock_fundamental/stock_register.py +0 -292
  234. akshare-1.12.99.dist-info/RECORD +0 -374
  235. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/LICENSE +0 -0
  236. {akshare-1.12.99.dist-info → akshare-1.15.72.dist-info}/top_level.txt +0 -0
@@ -1,13 +1,14 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2022/11/25 12:10
4
+ Date: 2024/4/4 18:10
5
5
  Desc: 东方财富-数据中心-年报季报
6
6
  东方财富-数据中心-年报季报-业绩预告
7
7
  https://data.eastmoney.com/bbsj/202003/yjyg.html
8
8
  东方财富-数据中心-年报季报-预约披露时间
9
9
  https://data.eastmoney.com/bbsj/202003/yysj.html
10
10
  """
11
+
11
12
  import pandas as pd
12
13
  import requests
13
14
  from tqdm import tqdm
@@ -17,7 +18,7 @@ def stock_yjkb_em(date: str = "20211231") -> pd.DataFrame:
17
18
  """
18
19
  东方财富-数据中心-年报季报-业绩快报
19
20
  https://data.eastmoney.com/bbsj/202003/yjkb.html
20
- :param date: "20200331", "20200630", "20200930", "20201231"; 从 20100331 开始
21
+ :param date: 财报发布日期; choice of {"20200331", "20200630", "20200930", "20201231", ...}; 从 20100331 开始
21
22
  :type date: str
22
23
  :return: 业绩快报
23
24
  :rtype: pandas.DataFrame
@@ -30,7 +31,8 @@ def stock_yjkb_em(date: str = "20211231") -> pd.DataFrame:
30
31
  "pageNumber": "1",
31
32
  "reportName": "RPT_FCI_PERFORMANCEE",
32
33
  "columns": "ALL",
33
- "filter": f"""(SECURITY_TYPE_CODE in ("058001001","058001008"))(TRADE_MARKET_CODE!="069001017")(REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')""",
34
+ "filter": f"""(SECURITY_TYPE_CODE in ("058001001","058001008"))(TRADE_MARKET_CODE!="069001017")
35
+ (REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')""",
34
36
  }
35
37
  r = requests.get(url, params=params)
36
38
  data_json = r.json()
@@ -45,7 +47,7 @@ def stock_yjkb_em(date: str = "20211231") -> pd.DataFrame:
45
47
  r = requests.get(url, params=params)
46
48
  data_json = r.json()
47
49
  temp_df = pd.DataFrame(data_json["result"]["data"])
48
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
50
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
49
51
 
50
52
  big_df.reset_index(inplace=True)
51
53
  big_df["index"] = range(1, len(big_df) + 1)
@@ -101,14 +103,28 @@ def stock_yjkb_em(date: str = "20211231") -> pd.DataFrame:
101
103
  ]
102
104
  ]
103
105
  big_df["每股收益"] = pd.to_numeric(big_df["每股收益"], errors="coerce")
104
- big_df["营业收入-营业收入"] = pd.to_numeric(big_df["营业收入-营业收入"], errors="coerce")
105
- big_df["营业收入-去年同期"] = pd.to_numeric(big_df["营业收入-去年同期"], errors="coerce")
106
- big_df["营业收入-同比增长"] = pd.to_numeric(big_df["营业收入-同比增长"], errors="coerce")
107
- big_df["营业收入-季度环比增长"] = pd.to_numeric(big_df["营业收入-季度环比增长"], errors="coerce")
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
+ )
108
118
  big_df["净利润-净利润"] = pd.to_numeric(big_df["净利润-净利润"], errors="coerce")
109
- big_df["净利润-去年同期"] = pd.to_numeric(big_df["净利润-去年同期"], errors="coerce")
110
- big_df["净利润-同比增长"] = pd.to_numeric(big_df["净利润-同比增长"], errors="coerce")
111
- big_df["净利润-季度环比增长"] = pd.to_numeric(big_df["净利润-季度环比增长"], errors="coerce")
119
+ big_df["净利润-去年同期"] = pd.to_numeric(
120
+ big_df["净利润-去年同期"], errors="coerce"
121
+ )
122
+ big_df["净利润-同比增长"] = pd.to_numeric(
123
+ big_df["净利润-同比增长"], errors="coerce"
124
+ )
125
+ big_df["净利润-季度环比增长"] = pd.to_numeric(
126
+ big_df["净利润-季度环比增长"], errors="coerce"
127
+ )
112
128
  big_df["每股净资产"] = pd.to_numeric(big_df["每股净资产"], errors="coerce")
113
129
  big_df["净资产收益率"] = pd.to_numeric(big_df["净资产收益率"], errors="coerce")
114
130
  big_df["净资产收益率"] = pd.to_numeric(big_df["净资产收益率"], errors="coerce")
@@ -120,7 +136,7 @@ def stock_yjyg_em(date: str = "20200331") -> pd.DataFrame:
120
136
  """
121
137
  东方财富-数据中心-年报季报-业绩预告
122
138
  https://data.eastmoney.com/bbsj/202003/yjyg.html
123
- :param date: "2020-03-31", "2020-06-30", "2020-09-30", "2020-12-31"; 从 2008-12-31 开始
139
+ :param date: 财报发布日期; choice of {"20200331", "20200630", "20200930", "20201231", ...}; 从 20081231 开始
124
140
  :type date: str
125
141
  :return: 业绩预告
126
142
  :rtype: pandas.DataFrame
@@ -148,7 +164,7 @@ def stock_yjyg_em(date: str = "20200331") -> pd.DataFrame:
148
164
  r = requests.get(url, params=params)
149
165
  data_json = r.json()
150
166
  temp_df = pd.DataFrame(data_json["result"]["data"])
151
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
167
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
152
168
 
153
169
  big_df.reset_index(inplace=True)
154
170
  big_df["index"] = range(1, len(big_df) + 1)
@@ -197,7 +213,7 @@ def stock_yjyg_em(date: str = "20200331") -> pd.DataFrame:
197
213
  "公告日期",
198
214
  ]
199
215
  ]
200
- big_df["公告日期"] = pd.to_datetime(big_df["公告日期"]).dt.date
216
+ big_df["公告日期"] = pd.to_datetime(big_df["公告日期"], errors="coerce").dt.date
201
217
  big_df["业绩变动幅度"] = pd.to_numeric(big_df["业绩变动幅度"], errors="coerce")
202
218
  big_df["预测数值"] = pd.to_numeric(big_df["预测数值"], errors="coerce")
203
219
  big_df["上年同期值"] = pd.to_numeric(big_df["上年同期值"], errors="coerce")
@@ -223,42 +239,51 @@ def stock_yysj_em(symbol: str = "沪深A股", date: str = "20200331") -> pd.Data
223
239
  "pageNumber": "1",
224
240
  "reportName": "RPT_PUBLIC_BS_APPOIN",
225
241
  "columns": "ALL",
226
- "filter": f"""(SECURITY_TYPE_CODE in ("058001001","058001008"))(TRADE_MARKET_CODE!="069001017")(REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')""",
242
+ "filter": f"""(SECURITY_TYPE_CODE in ("058001001","058001008"))(TRADE_MARKET_CODE!="069001017")
243
+ (REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')""",
227
244
  }
228
245
  if symbol == "沪市A股":
229
246
  params.update(
230
247
  {
231
- "filter": f"""(SECURITY_TYPE_CODE in ("058001001","058001008"))(TRADE_MARKET_CODE in ("069001001001","069001001003","069001001006"))(REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
248
+ "filter": f"""(SECURITY_TYPE_CODE in ("058001001","058001008"))
249
+ (TRADE_MARKET_CODE in ("069001001001","069001001003","069001001006"))
250
+ (REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
232
251
  }
233
252
  )
234
253
  elif symbol == "科创板":
235
254
  params.update(
236
255
  {
237
- "filter": f"""(SECURITY_TYPE_CODE in ("058001001","058001008"))(TRADE_MARKET_CODE="069001001006")(REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
256
+ "filter": f"""(SECURITY_TYPE_CODE in ("058001001","058001008"))(TRADE_MARKET_CODE="069001001006")
257
+ (REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
238
258
  }
239
259
  )
240
260
  elif symbol == "深市A股":
241
261
  params.update(
242
262
  {
243
- "filter": f"""(SECURITY_TYPE_CODE="058001001")(TRADE_MARKET_CODE in ("069001002001","069001002002","069001002003","069001002005"))(REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
263
+ "filter": f"""(SECURITY_TYPE_CODE="058001001")(TRADE_MARKET_CODE in
264
+ ("069001002001","069001002002","069001002003","069001002005"))
265
+ (REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
244
266
  }
245
267
  )
246
268
  elif symbol == "创业板":
247
269
  params.update(
248
270
  {
249
- "filter": f"""(SECURITY_TYPE_CODE="058001001")(TRADE_MARKET_CODE="069001002002")(REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
271
+ "filter": f"""(SECURITY_TYPE_CODE="058001001")(TRADE_MARKET_CODE="069001002002")
272
+ (REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
250
273
  }
251
274
  )
252
275
  elif symbol == "京市A股":
253
276
  params.update(
254
277
  {
255
- "filter": f"""(TRADE_MARKET_CODE="069001017")(REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
278
+ "filter": f"""(TRADE_MARKET_CODE="069001017")
279
+ (REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
256
280
  }
257
281
  )
258
282
  elif symbol == "ST板":
259
283
  params.update(
260
284
  {
261
- "filter": f"""(TRADE_MARKET_CODE in("069001001003","069001002005"))(REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
285
+ "filter": f"""(TRADE_MARKET_CODE in("069001001003","069001002005"))
286
+ (REPORT_DATE='{'-'.join([date[:4], date[4:6], date[6:]])}')"""
262
287
  }
263
288
  )
264
289
  r = requests.get(url, params=params)
@@ -274,7 +299,7 @@ def stock_yysj_em(symbol: str = "沪深A股", date: str = "20200331") -> pd.Data
274
299
  r = requests.get(url, params=params)
275
300
  data_json = r.json()
276
301
  temp_df = pd.DataFrame(data_json["result"]["data"])
277
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
302
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
278
303
 
279
304
  big_df.reset_index(inplace=True)
280
305
  big_df["index"] = range(1, len(big_df) + 1)
@@ -314,11 +339,21 @@ def stock_yysj_em(symbol: str = "沪深A股", date: str = "20200331") -> pd.Data
314
339
  "实际披露时间",
315
340
  ]
316
341
  ]
317
- big_df["首次预约时间"] = pd.to_datetime(big_df["首次预约时间"]).dt.date
318
- big_df["一次变更日期"] = pd.to_datetime(big_df["一次变更日期"]).dt.date
319
- big_df["二次变更日期"] = pd.to_datetime(big_df["二次变更日期"]).dt.date
320
- big_df["三次变更日期"] = pd.to_datetime(big_df["三次变更日期"]).dt.date
321
- big_df["实际披露时间"] = pd.to_datetime(big_df["实际披露时间"]).dt.date
342
+ big_df["首次预约时间"] = pd.to_datetime(
343
+ big_df["首次预约时间"], errors="coerce"
344
+ ).dt.date
345
+ big_df["一次变更日期"] = pd.to_datetime(
346
+ big_df["一次变更日期"], errors="coerce"
347
+ ).dt.date
348
+ big_df["二次变更日期"] = pd.to_datetime(
349
+ big_df["二次变更日期"], errors="coerce"
350
+ ).dt.date
351
+ big_df["三次变更日期"] = pd.to_datetime(
352
+ big_df["三次变更日期"], errors="coerce"
353
+ ).dt.date
354
+ big_df["实际披露时间"] = pd.to_datetime(
355
+ big_df["实际披露时间"], errors="coerce"
356
+ ).dt.date
322
357
  return big_df
323
358
 
324
359
 
@@ -329,5 +364,5 @@ if __name__ == "__main__":
329
364
  stock_yjyg_em_df = stock_yjyg_em(date="20191231")
330
365
  print(stock_yjyg_em_df)
331
366
 
332
- stock_yysj_em_df = stock_yysj_em(symbol="京市A股", date="20211231")
367
+ stock_yysj_em_df = stock_yysj_em(symbol="沪深A股", date="20211231")
333
368
  print(stock_yysj_em_df)
@@ -1,16 +1,18 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2022/1/14 14:23
4
+ Date: 2024/4/4 18:20
5
5
  Desc: 增发和配股
6
6
  东方财富网-数据中心-新股数据-增发-全部增发
7
- http://data.eastmoney.com/other/gkzf.html
7
+ https://data.eastmoney.com/other/gkzf.html
8
8
  东方财富网-数据中心-新股数据-配股
9
- http://data.eastmoney.com/xg/pg/
9
+ https://data.eastmoney.com/xg/pg/
10
10
  """
11
+
11
12
  import pandas as pd
12
13
  import requests
13
- from tqdm import tqdm
14
+
15
+ from akshare.utils.tqdm import get_tqdm
14
16
 
15
17
 
16
18
  def stock_qbzf_em() -> pd.DataFrame:
@@ -20,6 +22,9 @@ def stock_qbzf_em() -> pd.DataFrame:
20
22
  :return: 全部增发
21
23
  :rtype: pandas.DataFrame
22
24
  """
25
+ import warnings
26
+
27
+ warnings.filterwarnings(action="ignore", category=FutureWarning)
23
28
  url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
24
29
  params = {
25
30
  "sortColumns": "ISSUE_DATE",
@@ -35,30 +40,36 @@ def stock_qbzf_em() -> pd.DataFrame:
35
40
  }
36
41
  r = requests.get(url, params=params)
37
42
  data_json = r.json()
38
- total_page = data_json['result']["pages"]
43
+ total_page = data_json["result"]["pages"]
39
44
  big_df = pd.DataFrame()
45
+ tqdm = get_tqdm()
40
46
  for page in tqdm(range(1, total_page + 1), leave=False):
41
- params.update({
42
- "pageNumber": page,
43
- })
47
+ params.update(
48
+ {
49
+ "pageNumber": page,
50
+ }
51
+ )
44
52
  r = requests.get(url, params=params)
45
53
  data_json = r.json()
46
- temp_df = pd.DataFrame(data_json['result']["data"])
47
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
54
+ temp_df = pd.DataFrame(data_json["result"]["data"])
55
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
48
56
 
49
- big_df.rename(columns={
50
- "SECURITY_NAME_ABBR": "股票简称",
51
- "SECURITY_CODE": "股票代码",
52
- "CORRECODE": "增发代码",
53
- "SEO_TYPE": "发行方式",
54
- "ISSUE_NUM": "发行总数",
55
- "ONLINE_ISSUE_NUM": "网上发行",
56
- "ISSUE_PRICE": "发行价格",
57
- "NEW_PRICE": "最新价",
58
- "ISSUE_DATE": "发行日期",
59
- "ISSUE_LISTING_DATE": "增发上市日期",
60
- "LOCKIN_PERIOD": "锁定期",
61
- }, inplace=True)
57
+ big_df.rename(
58
+ columns={
59
+ "SECURITY_NAME_ABBR": "股票简称",
60
+ "SECURITY_CODE": "股票代码",
61
+ "CORRECODE": "增发代码",
62
+ "SEO_TYPE": "发行方式",
63
+ "ISSUE_NUM": "发行总数",
64
+ "ONLINE_ISSUE_NUM": "网上发行",
65
+ "ISSUE_PRICE": "发行价格",
66
+ "NEW_PRICE": "最新价",
67
+ "ISSUE_DATE": "发行日期",
68
+ "ISSUE_LISTING_DATE": "增发上市日期",
69
+ "LOCKIN_PERIOD": "锁定期",
70
+ },
71
+ inplace=True,
72
+ )
62
73
  big_df = big_df[
63
74
  [
64
75
  "股票代码",
@@ -77,9 +88,11 @@ def stock_qbzf_em() -> pd.DataFrame:
77
88
  big_df["发行总数"] = pd.to_numeric(big_df["发行总数"], errors="coerce")
78
89
  big_df["发行价格"] = pd.to_numeric(big_df["发行价格"], errors="coerce")
79
90
  big_df["最新价"] = pd.to_numeric(big_df["最新价"], errors="coerce")
80
- big_df['发行方式'] = big_df['发行方式'].map({'2': "公开增发", "1": "定向增发"})
81
- big_df["发行日期"] = pd.to_datetime(big_df["发行日期"]).dt.date
82
- big_df["增发上市日期"] = pd.to_datetime(big_df["增发上市日期"]).dt.date
91
+ big_df["发行方式"] = big_df["发行方式"].map({"2": "公开增发", "1": "定向增发"})
92
+ big_df["发行日期"] = pd.to_datetime(big_df["发行日期"], errors="coerce").dt.date
93
+ big_df["增发上市日期"] = pd.to_datetime(
94
+ big_df["增发上市日期"], errors="coerce"
95
+ ).dt.date
83
96
  return big_df
84
97
 
85
98
 
@@ -90,6 +103,9 @@ def stock_pg_em() -> pd.DataFrame:
90
103
  :return: 配股
91
104
  :rtype: pandas.DataFrame
92
105
  """
106
+ import warnings
107
+
108
+ warnings.filterwarnings(action="ignore", category=FutureWarning)
93
109
  url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
94
110
  params = {
95
111
  "sortColumns": "EQUITY_RECORD_DATE",
@@ -105,16 +121,19 @@ def stock_pg_em() -> pd.DataFrame:
105
121
  }
106
122
  r = requests.get(url, params=params)
107
123
  data_json = r.json()
108
- total_page = data_json['result']["pages"]
124
+ total_page = data_json["result"]["pages"]
109
125
  big_df = pd.DataFrame()
110
- for page in tqdm(range(1, total_page+1), leave=False):
111
- params.update({
112
- "pageNumber": page,
113
- })
126
+ tqdm = get_tqdm()
127
+ for page in tqdm(range(1, total_page + 1), leave=False):
128
+ params.update(
129
+ {
130
+ "pageNumber": page,
131
+ }
132
+ )
114
133
  r = requests.get(url, params=params)
115
134
  data_json = r.json()
116
- temp_df = pd.DataFrame(data_json['result']["data"])
117
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
135
+ temp_df = pd.DataFrame(data_json["result"]["data"])
136
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
118
137
  big_df.columns = [
119
138
  "_",
120
139
  "_",
@@ -163,16 +182,20 @@ def stock_pg_em() -> pd.DataFrame:
163
182
  big_df["最新价"] = pd.to_numeric(big_df["最新价"], errors="coerce")
164
183
  big_df["配股前总股本"] = pd.to_numeric(big_df["配股前总股本"], errors="coerce")
165
184
  big_df["配股后总股本"] = pd.to_numeric(big_df["配股后总股本"], errors="coerce")
166
- big_df["股权登记日"] = pd.to_datetime(big_df["股权登记日"]).dt.date
167
- big_df["缴款起始日期"] = pd.to_datetime(big_df["缴款起始日期"]).dt.date
168
- big_df["缴款截止日期"] = pd.to_datetime(big_df["缴款截止日期"]).dt.date
169
- big_df["上市日"] = pd.to_datetime(big_df["上市日"]).dt.date
185
+ big_df["股权登记日"] = pd.to_datetime(big_df["股权登记日"], errors="coerce").dt.date
186
+ big_df["缴款起始日期"] = pd.to_datetime(
187
+ big_df["缴款起始日期"], errors="coerce"
188
+ ).dt.date
189
+ big_df["缴款截止日期"] = pd.to_datetime(
190
+ big_df["缴款截止日期"], errors="coerce"
191
+ ).dt.date
192
+ big_df["上市日"] = pd.to_datetime(big_df["上市日"], errors="coerce").dt.date
170
193
  return big_df
171
194
 
172
195
 
173
196
  if __name__ == "__main__":
174
197
  stock_qbzf_em_df = stock_qbzf_em()
175
- print(stock_qbzf_em_df.info())
198
+ print(stock_qbzf_em_df)
176
199
 
177
200
  stock_pg_em_df = stock_pg_em()
178
201
  print(stock_pg_em_df)
@@ -1,10 +1,11 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2023/7/14 15:00
4
+ Date: 2024/5/29 23:00
5
5
  Desc: 百度股市通-A股-财务报表-估值数据
6
6
  https://gushitong.baidu.com/stock/ab-002044
7
7
  """
8
+
8
9
  import pandas as pd
9
10
  import requests
10
11
 
@@ -56,6 +57,6 @@ def stock_zh_valuation_baidu(
56
57
 
57
58
  if __name__ == "__main__":
58
59
  stock_zh_valuation_baidu_df = stock_zh_valuation_baidu(
59
- symbol="002955", indicator="市净率", period="近一年"
60
+ symbol="002044", indicator="总市值", period="近一年"
60
61
  )
61
62
  print(stock_zh_valuation_baidu_df)