akshare 1.12.95__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 (240) hide show
  1. akshare/__init__.py +446 -139
  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_convert.py +40 -16
  10. akshare/bond/bond_info_cm.py +28 -8
  11. akshare/bond/bond_issue_cninfo.py +73 -30
  12. akshare/bond/{bond_zh_cov_sina.py → bond_zh_cov.py} +41 -17
  13. akshare/bond/bond_zh_sina.py +57 -51
  14. akshare/cal/__init__.py +0 -0
  15. akshare/cal/rv.py +170 -0
  16. akshare/cost/cost_living.py +7 -5
  17. akshare/currency/currency_safe.py +7 -6
  18. akshare/data/cninfo.js +15 -0
  19. akshare/datasets.py +10 -21
  20. akshare/economic/macro_bank.py +95 -653
  21. akshare/economic/macro_china.py +772 -1024
  22. akshare/economic/macro_china_hk.py +65 -243
  23. akshare/economic/macro_china_nbs.py +24 -7
  24. akshare/economic/macro_constitute.py +17 -12
  25. akshare/economic/macro_euro.py +13 -6
  26. akshare/economic/macro_finance_ths.py +133 -0
  27. akshare/economic/macro_info_ws.py +100 -0
  28. akshare/economic/macro_japan.py +5 -4
  29. akshare/economic/macro_other.py +12 -9
  30. akshare/economic/macro_usa.py +376 -1940
  31. akshare/economic/marco_cnbs.py +11 -6
  32. akshare/energy/energy_carbon.py +94 -125
  33. akshare/event/migration.py +3 -2
  34. akshare/exceptions.py +43 -0
  35. akshare/file_fold/calendar.json +245 -2
  36. akshare/fortune/fortune_500.py +15 -48
  37. akshare/fund/fund_amac.py +157 -75
  38. akshare/fund/fund_em.py +191 -184
  39. akshare/fund/fund_etf_em.py +20 -19
  40. akshare/fund/fund_etf_sina.py +71 -23
  41. akshare/fund/fund_etf_ths.py +93 -0
  42. akshare/fund/fund_fee_em.py +98 -0
  43. akshare/fund/fund_lof_em.py +10 -8
  44. akshare/fund/fund_portfolio_em.py +60 -50
  45. akshare/fund/fund_rank_em.py +91 -82
  46. akshare/fund/fund_report_cninfo.py +63 -48
  47. akshare/fund/fund_scale_sina.py +20 -10
  48. akshare/fund/fund_xq.py +139 -109
  49. akshare/futures/cons.py +8 -31
  50. akshare/futures/cot.py +185 -137
  51. akshare/futures/futures_basis.py +97 -32
  52. akshare/futures/futures_comm_ctp.py +37 -0
  53. akshare/futures/futures_comm_qihuo.py +74 -45
  54. akshare/futures/futures_daily_bar.py +121 -184
  55. akshare/futures/futures_hf_em.py +66 -61
  56. akshare/futures/futures_hq_sina.py +79 -61
  57. akshare/futures/futures_index_ccidx.py +6 -3
  58. akshare/futures/futures_inventory_99.py +61 -272
  59. akshare/futures/futures_news_shmet.py +4 -2
  60. akshare/futures/futures_roll_yield.py +12 -25
  61. akshare/futures/futures_spot_stock_em.py +19 -13
  62. akshare/futures/futures_stock_js.py +14 -12
  63. akshare/futures/futures_to_spot.py +38 -33
  64. akshare/futures/futures_warehouse_receipt.py +75 -71
  65. akshare/futures/futures_zh_sina.py +73 -50
  66. akshare/futures/symbol_var.py +18 -13
  67. akshare/futures_derivative/futures_contract_info_czce.py +60 -52
  68. akshare/futures_derivative/futures_contract_info_ine.py +43 -34
  69. akshare/futures_derivative/futures_contract_info_shfe.py +46 -35
  70. akshare/futures_derivative/futures_cot_sina.py +26 -19
  71. akshare/futures_derivative/futures_spot_sys.py +21 -8
  72. akshare/fx/currency_investing.py +19 -285
  73. akshare/index/index_cflp.py +29 -26
  74. akshare/index/index_cni.py +86 -88
  75. akshare/index/index_cons.py +26 -10
  76. akshare/index/index_cx.py +248 -47
  77. akshare/index/index_drewry.py +17 -16
  78. akshare/index/index_hog.py +27 -26
  79. akshare/index/index_option_qvix.py +329 -0
  80. akshare/index/index_research_fund_sw.py +134 -0
  81. akshare/index/{index_sw_research.py → index_research_sw.py} +122 -58
  82. akshare/index/index_spot.py +9 -5
  83. akshare/index/index_stock_hk.py +35 -16
  84. akshare/index/index_stock_us_sina.py +1 -1
  85. akshare/index/index_stock_zh.py +180 -89
  86. akshare/index/index_stock_zh_csindex.py +15 -369
  87. akshare/index/index_sw.py +62 -34
  88. akshare/index/index_yw.py +46 -23
  89. akshare/index/index_zh_a_scope.py +48 -0
  90. akshare/index/index_zh_em.py +17 -14
  91. akshare/interest_rate/interbank_rate_em.py +14 -9
  92. akshare/movie/artist_yien.py +32 -5
  93. akshare/movie/movie_yien.py +92 -18
  94. akshare/movie/video_yien.py +28 -5
  95. akshare/news/news_baidu.py +78 -44
  96. akshare/news/news_cctv.py +38 -38
  97. akshare/news/news_stock.py +6 -3
  98. akshare/nlp/nlp_interface.py +7 -8
  99. akshare/option/cons.py +11 -11
  100. akshare/option/option_comm_qihuo.py +86 -0
  101. akshare/option/option_commodity.py +178 -51
  102. akshare/option/option_daily_stats_sse_szse.py +146 -0
  103. akshare/option/option_em.py +147 -138
  104. akshare/option/option_finance_sina.py +160 -137
  105. akshare/option/option_lhb_em.py +62 -56
  106. akshare/option/option_risk_indicator_sse.py +17 -14
  107. akshare/other/other_car_cpca.py +934 -0
  108. akshare/other/{other_car.py → other_car_gasgoo.py} +15 -54
  109. akshare/qdii/__init__.py +0 -0
  110. akshare/qdii/qdii_jsl.py +233 -0
  111. akshare/request.py +117 -0
  112. akshare/spot/spot_hog_soozhu.py +232 -0
  113. akshare/spot/spot_price_qh.py +121 -0
  114. akshare/spot/spot_sge.py +63 -10
  115. akshare/stock/stock_allotment_cninfo.py +10 -9
  116. akshare/stock/stock_ask_bid_em.py +27 -3
  117. akshare/stock/stock_board_concept_em.py +23 -14
  118. akshare/stock/stock_board_industry_em.py +40 -34
  119. akshare/stock/stock_cg_equity_mortgage.py +15 -11
  120. akshare/stock/stock_cg_guarantee.py +41 -51
  121. akshare/stock/stock_cg_lawsuit.py +36 -35
  122. akshare/stock/stock_dividend_cninfo.py +12 -6
  123. akshare/stock/stock_dzjy_em.py +347 -260
  124. akshare/stock/stock_fund_em.py +332 -84
  125. akshare/stock/stock_hk_famous.py +108 -0
  126. akshare/stock/stock_hk_sina.py +8 -7
  127. akshare/stock/stock_hold_control_cninfo.py +100 -15
  128. akshare/stock/stock_hold_control_em.py +4 -3
  129. akshare/stock/stock_hold_num_cninfo.py +18 -12
  130. akshare/stock/stock_hot_rank_em.py +2 -1
  131. akshare/stock/stock_hot_search_baidu.py +5 -2
  132. akshare/stock/stock_industry_cninfo.py +24 -18
  133. akshare/stock/stock_industry_pe_cninfo.py +45 -31
  134. akshare/stock/stock_industry_sw.py +9 -10
  135. akshare/stock/stock_info.py +25 -15
  136. akshare/stock/stock_info_em.py +5 -2
  137. akshare/stock/stock_intraday_em.py +5 -2
  138. akshare/stock/stock_intraday_sina.py +22 -18
  139. akshare/stock/stock_ipo_summary_cninfo.py +25 -10
  140. akshare/stock/stock_new_cninfo.py +32 -19
  141. akshare/stock/stock_news_cx.py +39 -0
  142. akshare/stock/stock_profile_cninfo.py +9 -8
  143. akshare/stock/stock_rank_forecast.py +8 -6
  144. akshare/stock/stock_share_changes_cninfo.py +18 -14
  145. akshare/stock/stock_share_hold.py +24 -19
  146. akshare/stock/stock_summary.py +54 -26
  147. akshare/stock/stock_us_famous.py +15 -6
  148. akshare/stock/stock_us_pink.py +7 -5
  149. akshare/stock/stock_us_sina.py +15 -12
  150. akshare/stock/stock_xq.py +38 -12
  151. akshare/stock/stock_zh_a_sina.py +53 -78
  152. akshare/stock/stock_zh_b_sina.py +32 -55
  153. akshare/stock/stock_zh_kcb_report.py +11 -9
  154. akshare/stock/stock_zh_kcb_sina.py +67 -64
  155. akshare/stock_feature/stock_a_below_net_asset_statistics.py +5 -2
  156. akshare/stock_feature/stock_a_high_low.py +5 -2
  157. akshare/stock_feature/stock_a_indicator.py +12 -9
  158. akshare/stock_feature/stock_a_pe_and_pb.py +27 -6
  159. akshare/stock_feature/stock_account_em.py +58 -40
  160. akshare/stock_feature/stock_analyst_em.py +36 -27
  161. akshare/stock_feature/stock_board_industry_ths.py +136 -400
  162. akshare/stock_feature/stock_comment_em.py +118 -85
  163. akshare/stock_feature/stock_concept_futu.py +183 -0
  164. akshare/stock_feature/stock_cyq_em.py +58 -54
  165. akshare/stock_feature/stock_disclosure_cninfo.py +147 -102
  166. akshare/stock_feature/stock_esg_sina.py +216 -11
  167. akshare/stock_feature/stock_fhps_em.py +60 -25
  168. akshare/stock_feature/stock_fhps_ths.py +25 -6
  169. akshare/stock_feature/stock_fund_flow.py +38 -25
  170. akshare/stock_feature/stock_gdfx_em.py +180 -95
  171. akshare/stock_feature/stock_gdhs.py +73 -49
  172. akshare/stock_feature/stock_gpzy_em.py +78 -46
  173. akshare/stock_feature/stock_hist_em.py +164 -111
  174. akshare/stock_feature/stock_hk_valuation_baidu.py +20 -8
  175. akshare/stock_feature/stock_hsgt_em.py +184 -452
  176. akshare/stock_feature/stock_info.py +52 -29
  177. akshare/stock_feature/stock_inner_trade_xq.py +39 -31
  178. akshare/stock_feature/stock_irm_cninfo.py +32 -9
  179. akshare/stock_feature/stock_jgdy_em.py +41 -38
  180. akshare/stock_feature/stock_lh_yybpm.py +36 -37
  181. akshare/stock_feature/stock_lhb_em.py +135 -71
  182. akshare/stock_feature/stock_lhb_sina.py +93 -46
  183. akshare/stock_feature/stock_margin_em.py +102 -0
  184. akshare/stock_feature/{stock_sse_margin.py → stock_margin_sse.py} +21 -15
  185. akshare/stock_feature/{stock_szse_margin.py → stock_margin_szse.py} +23 -19
  186. akshare/stock_feature/stock_market_legu.py +13 -8
  187. akshare/stock_feature/stock_pankou_em.py +72 -34
  188. akshare/stock_feature/stock_report_em.py +244 -54
  189. akshare/stock_feature/stock_research_report_em.py +48 -19
  190. akshare/stock_feature/stock_sns_sseinfo.py +15 -12
  191. akshare/stock_feature/stock_sy_em.py +86 -33
  192. akshare/stock_feature/stock_technology_ths.py +152 -120
  193. akshare/stock_feature/stock_tfp_em.py +35 -13
  194. akshare/stock_feature/stock_three_report_em.py +119 -77
  195. akshare/stock_feature/stock_ttm_lyr.py +4 -7
  196. akshare/stock_feature/stock_value_em.py +83 -0
  197. akshare/stock_feature/stock_wencai.py +21 -9
  198. akshare/stock_feature/stock_yjyg_em.py +63 -28
  199. akshare/stock_feature/stock_zf_pg.py +61 -38
  200. akshare/stock_feature/stock_zh_valuation_baidu.py +3 -2
  201. akshare/stock_feature/stock_ztb_em.py +62 -40
  202. akshare/stock_fundamental/stock_finance.py +150 -58
  203. akshare/stock_fundamental/stock_finance_ths.py +116 -31
  204. akshare/stock_fundamental/stock_mda_ym.py +5 -3
  205. akshare/stock_fundamental/stock_notice.py +29 -15
  206. akshare/stock_fundamental/stock_profit_forecast_em.py +31 -13
  207. akshare/stock_fundamental/stock_profit_forecast_ths.py +19 -10
  208. akshare/stock_fundamental/stock_register_em.py +448 -0
  209. akshare/stock_fundamental/stock_restricted_em.py +79 -32
  210. akshare/stock_fundamental/stock_zygc.py +10 -8
  211. akshare/stock_fundamental/stock_zyjs_ths.py +5 -3
  212. akshare/tool/trade_date_hist.py +4 -3
  213. akshare/utils/cons.py +10 -0
  214. akshare/utils/context.py +43 -0
  215. akshare/utils/demjson.py +2 -2
  216. akshare/utils/func.py +26 -0
  217. akshare/utils/tqdm.py +13 -3
  218. {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/METADATA +52 -69
  219. akshare-1.15.72.dist-info/RECORD +385 -0
  220. {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/WHEEL +1 -1
  221. tests/test_func.py +3 -5
  222. akshare/bond/bond_futures.py +0 -50
  223. akshare/bond/bond_investing.py +0 -139
  224. akshare/crypto/crypto_hist_investing.py +0 -249
  225. akshare/fortune/fortune_it_juzi.py +0 -123
  226. akshare/futures/futures_international.py +0 -170
  227. akshare/futures/futures_news_baidu.py +0 -54
  228. akshare/futures/inventory_data.py +0 -100
  229. akshare/futures_derivative/futures_index_price_nh.py +0 -61
  230. akshare/futures_derivative/futures_index_return_nh.py +0 -47
  231. akshare/futures_derivative/futures_index_volatility_nh.py +0 -51
  232. akshare/futures_derivative/futures_other_index_nh.py +0 -145
  233. akshare/index/index_fear_greed_funddb.py +0 -71
  234. akshare/index/index_investing.py +0 -232
  235. akshare/sport/sport_olympic_winter.py +0 -39
  236. akshare/stock_feature/stock_board_concept_ths.py +0 -422
  237. akshare/stock_fundamental/stock_register.py +0 -292
  238. akshare-1.12.95.dist-info/RECORD +0 -374
  239. {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/LICENSE +0 -0
  240. {akshare-1.12.95.dist-info → akshare-1.15.72.dist-info}/top_level.txt +0 -0
@@ -1,232 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding:utf-8 -*-
3
- """
4
- Date: 2022/8/8 19:53
5
- Desc: 英为财情-股票指数-全球股指与期货指数数据接口
6
- https://cn.investing.com/indices/volatility-s-p-500-historical-data
7
- """
8
- import json
9
-
10
- import pandas as pd
11
- import requests
12
- from bs4 import BeautifulSoup
13
-
14
- from akshare.index.cons import short_headers
15
-
16
-
17
- def _get_global_index_area_name_code() -> dict:
18
- """
19
- 全球指数-各国的全球指数数据
20
- https://cn.investing.com/indices/global-indices?majorIndices=on&primarySectors=on&bonds=on&additionalIndices=on&otherIndices=on&c_id=37
21
- :return: 国家和代码
22
- :rtype: dict
23
- """
24
- url = "https://cn.investing.com/indices/global-indices"
25
- params = {
26
- "majorIndices": "on",
27
- "primarySectors": "on",
28
- "bonds": "on",
29
- "additionalIndices": "on",
30
- "otherIndices": "on",
31
- }
32
- r = requests.get(url, params=params, headers=short_headers)
33
- data_text = r.text
34
- soup = BeautifulSoup(data_text, "lxml")
35
- name_url_option_list = soup.find_all("option")[1:]
36
- url_list = [
37
- item["value"]
38
- for item in name_url_option_list
39
- if "c_id" in item["value"]
40
- ]
41
- url_list_code = [
42
- item["value"].split("?")[1].split("=")[1]
43
- for item in name_url_option_list
44
- if "c_id" in item["value"]
45
- ]
46
- name_list = [item.get_text() for item in name_url_option_list][
47
- : len(url_list)
48
- ]
49
- _temp_df = pd.DataFrame([name_list, url_list_code]).T
50
- name_code_list = dict(zip(_temp_df.iloc[:, 0], _temp_df.iloc[:, 1]))
51
- return name_code_list
52
-
53
-
54
- def _get_global_country_name_url() -> dict:
55
- """
56
- 可获得指数数据国家对应的 URL
57
- https://cn.investing.com/indices/
58
- :return: 国家和 URL
59
- :rtype: dict
60
- """
61
- url = "https://cn.investing.com/indices/"
62
- res = requests.post(url, headers=short_headers)
63
- soup = BeautifulSoup(res.text, "lxml")
64
- name_url_option_list = soup.find(
65
- "select", attrs={"name": "country"}
66
- ).find_all("option")[
67
- 1:
68
- ] # 去掉-所有国家及地区
69
- url_list = [item["value"] for item in name_url_option_list]
70
- name_list = [item.get_text() for item in name_url_option_list]
71
- name_code_map_dict = {}
72
- name_code_map_dict.update(zip(name_list, url_list))
73
- return name_code_map_dict
74
-
75
-
76
- def index_investing_global_area_index_name_code(area: str = "中国") -> dict:
77
- """
78
- 指定 area 的所有指数和代码
79
- https://cn.investing.com/indices/
80
- :param area: 指定的国家或地区;ak._get_global_country_name_url() 函数返回的国家或地区的名称
81
- :type area: str
82
- :return: 指定 area 的所有指数和代码
83
- :rtype: dict
84
- """
85
- pd.set_option("mode.chained_assignment", None)
86
- name_url_dict = _get_global_country_name_url()
87
- url = f"https://cn.investing.com{name_url_dict[area]}?&majorIndices=on&primarySectors=on&additionalIndices=on&otherIndices=on"
88
- r = requests.get(url)
89
- soup = BeautifulSoup(r.text, "lxml")
90
- code_list = [
91
- item["data-id"]
92
- for item in soup.find_all("table")[1].find_all(
93
- "span", attrs={"class": "alertBellGrayPlus"}
94
- )
95
- ]
96
- name_list = [
97
- item.find("a").text
98
- for item in soup.find_all("td", attrs={"class": "plusIconTd"})
99
- ]
100
- name_code_map_dict = {}
101
- name_code_map_dict.update(zip(name_list, code_list))
102
- return name_code_map_dict
103
-
104
-
105
- def index_investing_global_area_index_name_url(area: str = "中国") -> dict:
106
- """
107
- 指定 area 的所有指数和 URL 地址
108
- https://cn.investing.com/indices/
109
- :param area: 指定的国家或地区;ak._get_global_country_name_url() 函数返回的国家或地区的名称
110
- :type area: str
111
- :return: 指定 area 的所有指数和 URL 地址
112
- :rtype: dict
113
- """
114
- pd.set_option("mode.chained_assignment", None)
115
- name_url_dict = _get_global_country_name_url()
116
- url = f"https://cn.investing.com{name_url_dict[area]}?&majorIndices=on&primarySectors=on&additionalIndices=on&otherIndices=on"
117
- r = requests.get(url)
118
- soup = BeautifulSoup(r.text, "lxml")
119
- code_list = [
120
- item.find("a")["href"]
121
- for item in soup.find_all("td", attrs={"class": "plusIconTd"})
122
- ]
123
- name_list = [
124
- item.find("a").text
125
- for item in soup.find_all("td", attrs={"class": "plusIconTd"})
126
- ]
127
- name_code_map_dict = {}
128
- name_code_map_dict.update(zip(name_list, code_list))
129
- return name_code_map_dict
130
-
131
-
132
- def index_investing_global(
133
- area: str = "中国",
134
- symbol: str = "上证指数",
135
- period: str = "每日",
136
- start_date: str = "20100101",
137
- end_date: str = "20211031",
138
- ) -> pd.DataFrame:
139
- """
140
- 具体国家或地区的从 start_date 到 end_date 期间的数据
141
- https://cn.investing.com/indices/ftse-epra-nareit-hong-kong-historical-data
142
- :param area: 对应函数中的国家或地区名称
143
- :type area: str
144
- :param symbol: 对应函数中的指数名称
145
- :type symbol: str
146
- :param period: choice of {"每日", "每周", "每月"}
147
- :type period: str
148
- :param start_date: '20000101', 注意格式
149
- :type start_date: str
150
- :param end_date: '20191017', 注意格式
151
- :type end_date: str
152
- :return: 指定参数的数据
153
- :rtype: pandas.DataFrame
154
- """
155
- start_date = "-".join([start_date[:4], start_date[4:6], start_date[6:]])
156
- end_date = "-".join([end_date[:4], end_date[4:6], end_date[6:]])
157
- period_map = {"每日": "Daily", "每周": "Weekly", "每月": "Monthly"}
158
- name_code_dict = index_investing_global_area_index_name_code(area)
159
- url = f"https://api.investing.com/api/financialdata/historical/{name_code_dict[symbol]}"
160
- params = {
161
- "start-date": start_date,
162
- "end-date": end_date,
163
- "time-frame": period_map[period],
164
- "add-missing-rows": "false",
165
- }
166
- headers = {
167
- "accept": "application/json, text/plain, */*",
168
- "accept-encoding": "gzip, deflate, br",
169
- "accept-language": "zh-CN,zh;q=0.9,en;q=0.8",
170
- "cache-control": "no-cache",
171
- "domain-id": "cn",
172
- "origin": "https://cn.investing.com",
173
- "pragma": "no-cache",
174
- "referer": "https://cn.investing.com/",
175
- "sec-ch-ua": '"Google Chrome";v="105", "Not)A;Brand";v="8", "Chromium";v="105"',
176
- "sec-ch-ua-mobile": "?0",
177
- "sec-ch-ua-platform": '"Windows"',
178
- "sec-fetch-dest": "empty",
179
- "sec-fetch-mode": "cors",
180
- "sec-fetch-site": "same-site",
181
- "authorization": "Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJleHAiOjE2NjM2NjQ1NzUsImp0aSI6IjIyODA4MDM5MSIsImlhdCI6MTY2MzY2MDk3NSwiaXNzIjoiaW52ZXN0aW5nLmNvbSIsInVzZXJfaWQiOjIyODA4MDM5MSwicHJpbWFyeV9kb21haW5faWQiOiIxIiwiQXV0aG5TeXN0ZW1Ub2tlbiI6IiIsIkF1dGhuU2Vzc2lvblRva2VuIjoiIiwiRGV2aWNlVG9rZW4iOiIiLCJVYXBpVG9rZW4iOiJObmclMkJmMlJyUHpjeWRtdHRaell5TW1JN1pUNWliV1prTURJMVB6czlNeVUySWpVN1lEYzNjV1ZxYWlSZ1kyVjVNamRsWWpRMFptWTFQMkk4TnpCdlBEWXlQbVJrWXo4M01tQnJaMmN3TW1aaU1HVm9ZbWRtWmpBNU5UWTdhRE0lMkJOalUxTW1Cdk56VmxPbW93WUR4bGJUSWdaWGswY0daM05XZGlNamQyYnlnMk9UNSUyRlpEUSUyRllESm1hMjluTURJeFlqRmxQV0l3Wmpjd1pUVXhPenN6S3paOSIsIkF1dGhuSWQiOiIiLCJJc0RvdWJsZUVuY3J5cHRlZCI6ZmFsc2UsIkRldmljZUlkIjoiIiwiUmVmcmVzaEV4cGlyZWRBdCI6MTY2NjE4MDk3NX0.uRLTP1IG3696uxHm3Qq0D8z4o3nfsD3CaIS9cZGjsV0",
182
- "user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/105.0.0.0 Safari/537.36",
183
- }
184
- r = requests.get(url, params=params, headers=headers)
185
- r.encoding = "utf-8"
186
- r = requests.get(url, params=params, headers=headers)
187
- data_json = r.json()
188
- df_data = pd.DataFrame(data_json["data"])
189
- df_data.columns = [
190
- "-",
191
- "-",
192
- "-",
193
- "日期",
194
- "-",
195
- "-",
196
- "-",
197
- "-",
198
- "-",
199
- "交易量",
200
- "-",
201
- "收盘",
202
- "开盘",
203
- "高",
204
- "低",
205
- "涨跌幅",
206
- ]
207
- df_data = df_data[["日期", "收盘", "开盘", "高", "低", "交易量", "涨跌幅"]]
208
- df_data["日期"] = pd.to_datetime(df_data["日期"]).dt.date
209
- df_data["收盘"] = pd.to_numeric(df_data["收盘"])
210
- df_data["开盘"] = pd.to_numeric(df_data["开盘"])
211
- df_data["高"] = pd.to_numeric(df_data["高"])
212
- df_data["低"] = pd.to_numeric(df_data["低"])
213
- df_data["交易量"] = pd.to_numeric(df_data["交易量"])
214
- df_data["涨跌幅"] = pd.to_numeric(df_data["涨跌幅"])
215
- df_data.sort_values("日期", inplace=True)
216
- df_data.reset_index(inplace=True, drop=True)
217
- return df_data
218
-
219
-
220
- if __name__ == "__main__":
221
- print(index_investing_global_area_index_name_url("香港"))
222
-
223
- print(index_investing_global_area_index_name_code("香港"))
224
-
225
- index_investing_global_df = index_investing_global(
226
- area="中国",
227
- symbol="富时中国A50指数",
228
- period="每日",
229
- start_date="20100101",
230
- end_date="20220808",
231
- )
232
- print(index_investing_global_df)
@@ -1,39 +0,0 @@
1
- #!/usr/bin/env python
2
- # -*- coding:utf-8 -*-
3
- """
4
- Date: 2022/2/8 17:14
5
- Desc: 腾讯运动-冬奥会-历届奖牌榜
6
- https://m.sports.qq.com/g/sv3/winter-oly22/winter-olympic-rank.htm?type=0
7
- """
8
- import requests
9
- import pandas as pd
10
-
11
-
12
- def sport_olympic_winter_hist() -> pd.DataFrame:
13
- """
14
- 腾讯运动-冬奥会-历届奖牌榜
15
- :return: 历届奖牌榜
16
- :rtype: pandas.DataFrame
17
- """
18
- url = "https://app.sports.qq.com/m/oly/historyMedal"
19
- r = requests.get(url)
20
- data_json = r.json()
21
- temp_df = pd.DataFrame(data_json["data"]["list"])
22
- temp_df = temp_df.explode("list")
23
- temp_df["国家及地区"] = temp_df["list"].apply(lambda x: (x["noc"]))
24
- temp_df["金牌数"] = temp_df["list"].apply(lambda x: (int(x["gold"])))
25
- temp_df["总奖牌数"] = temp_df["list"].apply(lambda x: (int(x["total"])))
26
- temp_df["举办年份"] = temp_df["year"].astype("str")
27
- temp_df["届数"] = temp_df["no"].astype("str")
28
- temp_df["举办地点"] = temp_df["country"]
29
- temp_df = temp_df[["举办年份", "届数", "举办地点", "国家及地区", "金牌数", "总奖牌数"]]
30
- temp_df = temp_df.replace("俄罗斯奥委会", "俄罗斯")
31
- temp_df.reset_index(inplace=True)
32
- temp_df["index"] = range(1, len(temp_df) + 1)
33
- temp_df.rename(columns={"index": "序号"}, inplace=True)
34
- return temp_df
35
-
36
-
37
- if __name__ == "__main__":
38
- sport_olympic_winter_hist_df = sport_olympic_winter_hist()
39
- print(sport_olympic_winter_hist_df)