akshare 1.16.25__py3-none-any.whl → 1.16.26__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 CHANGED
@@ -3034,9 +3034,10 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
3034
3034
  1.16.23 fix: fix stock_board_industry_cons_em interface
3035
3035
  1.16.24 fix: fix stock_financial_hk_report_em interface
3036
3036
  1.16.25 fix: fix stock_financial_abstract_ths interface
3037
+ 1.16.26 add: add stock_hsgt_sh_hk_spot_em interface
3037
3038
  """
3038
3039
 
3039
- __version__ = "1.16.25"
3040
+ __version__ = "1.16.26"
3040
3041
  __author__ = "AKFamily"
3041
3042
 
3042
3043
  import sys
@@ -3058,6 +3059,11 @@ if sys.version_info < (3, 9):
3058
3059
 
3059
3060
  del sys
3060
3061
 
3062
+ """
3063
+ 东方财富网-行情中心-沪深港通
3064
+ """
3065
+ from akshare.stock.stock_hsgt_em import stock_zh_ah_spot_em, stock_hsgt_sh_hk_spot_em
3066
+
3061
3067
  """
3062
3068
  东方财富-美股-财务分析-三大报表
3063
3069
  """
@@ -0,0 +1,158 @@
1
+ #!/usr/bin/env python
2
+ # -*- coding:utf-8 -*-
3
+ """
4
+ Date: 2025/3/4 23:00
5
+ Desc: 东方财富网-行情中心-沪深港通
6
+ https://quote.eastmoney.com/center/gridlist.html#ah_comparison
7
+ """
8
+
9
+ import pandas as pd
10
+ import requests
11
+
12
+
13
+ def stock_zh_ah_spot_em() -> pd.DataFrame:
14
+ """
15
+ 东方财富网-行情中心-沪深港通-AH股比价-实时行情
16
+ https://quote.eastmoney.com/center/gridlist.html#ah_comparison
17
+ :return: 东方财富网-行情中心-沪深港通-AH股比价-实时行情
18
+ :rtype: pandas.DataFrame
19
+ """
20
+ url = "https://push2.eastmoney.com/api/qt/clist/get"
21
+ params = {
22
+ "np": "2",
23
+ "fltt": "1",
24
+ "invt": "2",
25
+ "fs": "b:DLMK0101",
26
+ "fields": "f193,f191,f192,f12,f13,f14,f1,f2,f4,f3,f152,f186,f190,f187,f189,f188",
27
+ "fid": "f3",
28
+ "pn": "1",
29
+ "pz": "50000",
30
+ "po": "1",
31
+ "dect": "1",
32
+ "ut": "fa5fd1943c7b386f172d6893dbfba10b",
33
+ "wbp2u": "|0|0|0|web",
34
+ "_": "1741100627371",
35
+ }
36
+ r = requests.get(url, params=params)
37
+ data_json = r.json()
38
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
39
+ temp_df.reset_index(inplace=True)
40
+ temp_df["index"] = temp_df["index"].astype(int) + 1
41
+ temp_df.rename(
42
+ columns={
43
+ "index": "序号",
44
+ "f193": "名称",
45
+ "f12": "H股代码",
46
+ "f2": "最新价-HKD",
47
+ "f3": "H股-涨跌幅",
48
+ "f191": "A股代码",
49
+ "f186": "最新价-RMB",
50
+ "f187": "A股-涨跌幅",
51
+ "f189": "比价",
52
+ "f188": "溢价",
53
+ },
54
+ inplace=True,
55
+ )
56
+ temp_df = temp_df[
57
+ [
58
+ "序号",
59
+ "名称",
60
+ "H股代码",
61
+ "最新价-HKD",
62
+ "H股-涨跌幅",
63
+ "A股代码",
64
+ "最新价-RMB",
65
+ "A股-涨跌幅",
66
+ "比价",
67
+ "溢价",
68
+ ]
69
+ ]
70
+ temp_df["最新价-HKD"] = pd.to_numeric(temp_df["最新价-HKD"], errors="coerce") / 1000
71
+ temp_df["H股-涨跌幅"] = pd.to_numeric(temp_df["H股-涨跌幅"], errors="coerce") / 100
72
+ temp_df["最新价-RMB"] = pd.to_numeric(temp_df["最新价-RMB"], errors="coerce") / 100
73
+ temp_df["A股-涨跌幅"] = pd.to_numeric(temp_df["A股-涨跌幅"], errors="coerce") / 100
74
+ temp_df["比价"] = pd.to_numeric(temp_df["比价"], errors="coerce") / 100
75
+ temp_df["溢价"] = pd.to_numeric(temp_df["溢价"], errors="coerce") / 100
76
+ return temp_df
77
+
78
+
79
+ def stock_hsgt_sh_hk_spot_em() -> pd.DataFrame:
80
+ """
81
+ 东方财富网-行情中心-沪深港通-港股通(沪>港)-股票
82
+ https://quote.eastmoney.com/center/gridlist.html#hk_sh_stocks
83
+ :return: 东方财富网-行情中心-沪深港通-港股通(沪>港)-股票
84
+ :rtype: pandas.DataFrame
85
+ """
86
+ url = "https://push2.eastmoney.com/api/qt/clist/get"
87
+ params = {
88
+ "np": "2",
89
+ "fltt": "1",
90
+ "invt": "2",
91
+ "fs": "b:DLMK0144",
92
+ "fields": "f12,f13,f14,f19,f1,f2,f4,f3,f152,f17,f18,f15,f16,f5,f6",
93
+ "fid": "f3",
94
+ "pn": "1",
95
+ "pz": "50000",
96
+ "po": "1",
97
+ "dect": "1",
98
+ "ut": "fa5fd1943c7b386f172d6893dbfba10b",
99
+ "wbp2u": "|0|0|0|web",
100
+ "_": "1741100627371",
101
+ }
102
+ r = requests.get(url, params=params)
103
+ data_json = r.json()
104
+ temp_df = pd.DataFrame(data_json["data"]["diff"]).T
105
+ temp_df.reset_index(inplace=True)
106
+ temp_df["index"] = temp_df["index"].astype(int) + 1
107
+ temp_df.rename(
108
+ columns={
109
+ "index": "序号",
110
+ "f12": "代码",
111
+ "f14": "名称",
112
+ "f2": "最新价",
113
+ "f4": "涨跌额",
114
+ "f3": "涨跌幅",
115
+ "f17": "今开",
116
+ "f15": "最高",
117
+ "f16": "最低",
118
+ "f18": "昨收",
119
+ "f5": "成交量",
120
+ "f6": "成交额",
121
+ },
122
+ inplace=True,
123
+ )
124
+
125
+ temp_df = temp_df[
126
+ [
127
+ "序号",
128
+ "代码",
129
+ "名称",
130
+ "最新价",
131
+ "涨跌额",
132
+ "涨跌幅",
133
+ "今开",
134
+ "最高",
135
+ "最低",
136
+ "昨收",
137
+ "成交量",
138
+ "成交额",
139
+ ]
140
+ ]
141
+ temp_df["最新价"] = pd.to_numeric(temp_df["最新价"], errors="coerce") / 1000
142
+ temp_df["涨跌额"] = pd.to_numeric(temp_df["涨跌额"], errors="coerce") / 1000
143
+ temp_df["涨跌幅"] = pd.to_numeric(temp_df["涨跌幅"], errors="coerce") / 100
144
+ temp_df["今开"] = pd.to_numeric(temp_df["今开"], errors="coerce") / 1000
145
+ temp_df["最高"] = pd.to_numeric(temp_df["最高"], errors="coerce") / 1000
146
+ temp_df["最低"] = pd.to_numeric(temp_df["最低"], errors="coerce") / 1000
147
+ temp_df["昨收"] = pd.to_numeric(temp_df["昨收"], errors="coerce") / 1000
148
+ temp_df["成交量"] = pd.to_numeric(temp_df["成交量"], errors="coerce") / 100000000
149
+ temp_df["成交额"] = pd.to_numeric(temp_df["成交额"], errors="coerce") / 100000000
150
+ return temp_df
151
+
152
+
153
+ if __name__ == "__main__":
154
+ stock_zh_ah_spot_em_df = stock_zh_ah_spot_em()
155
+ print(stock_zh_ah_spot_em_df)
156
+
157
+ stock_hsgt_sh_hk_spot_em_df = stock_hsgt_sh_hk_spot_em()
158
+ print(stock_hsgt_sh_hk_spot_em_df)
@@ -5,6 +5,7 @@ Date: 2024/2/26 15:10
5
5
  Desc: 腾讯财经-A+H股数据, 实时行情数据和历史行情数据(后复权)
6
6
  https://stockapp.finance.qq.com/mstats/#mod=list&id=hk_ah&module=HK&type=AH&sort=3&page=3&max=20
7
7
  """
8
+
8
9
  import random
9
10
 
10
11
  import pandas as pd
@@ -31,9 +32,7 @@ def _get_zh_stock_ah_page_count() -> int:
31
32
  hk_payload_copy = hk_payload.copy()
32
33
  hk_payload_copy.update({"reqPage": 1})
33
34
  r = requests.get(hk_url, params=hk_payload_copy, headers=hk_headers)
34
- data_json = demjson.decode(
35
- r.text[r.text.find("{"): r.text.rfind("}") + 1]
36
- )
35
+ data_json = demjson.decode(r.text[r.text.find("{") : r.text.rfind("}") + 1])
37
36
  page_count = data_json["data"]["page_count"]
38
37
  return page_count
39
38
 
@@ -45,15 +44,13 @@ def stock_zh_ah_spot() -> pd.DataFrame:
45
44
  :return: 腾讯财经-港股-AH-实时行情
46
45
  :rtype: pandas.DataFrame
47
46
  """
48
- big_df = pd.DataFrame()
49
47
  page_count = _get_zh_stock_ah_page_count()
48
+ big_df = pd.DataFrame()
50
49
  tqdm = get_tqdm()
51
50
  for i in tqdm(range(0, page_count), leave=False):
52
51
  hk_payload.update({"reqPage": i})
53
52
  r = requests.get(hk_url, params=hk_payload, headers=hk_headers)
54
- data_json = demjson.decode(
55
- r.text[r.text.find("{"): r.text.rfind("}") + 1]
56
- )
53
+ data_json = demjson.decode(r.text[r.text.find("{") : r.text.rfind("}") + 1])
57
54
  big_df = pd.concat(
58
55
  objs=[
59
56
  big_df,
@@ -123,9 +120,7 @@ def stock_zh_ah_name() -> pd.DataFrame:
123
120
  for i in tqdm(range(0, page_count), leave=False):
124
121
  hk_payload.update({"reqPage": i})
125
122
  r = requests.get(hk_url, params=hk_payload, headers=hk_headers)
126
- data_json = demjson.decode(
127
- r.text[r.text.find("{"): r.text.rfind("}") + 1]
128
- )
123
+ data_json = demjson.decode(r.text[r.text.find("{") : r.text.rfind("}") + 1])
129
124
  big_df = pd.concat(
130
125
  objs=[
131
126
  big_df,
@@ -160,10 +155,10 @@ def stock_zh_ah_name() -> pd.DataFrame:
160
155
 
161
156
 
162
157
  def stock_zh_ah_daily(
163
- symbol: str = "02318",
164
- start_year: str = "2000",
165
- end_year: str = "2019",
166
- adjust: str = "",
158
+ symbol: str = "02318",
159
+ start_year: str = "2000",
160
+ end_year: str = "2019",
161
+ adjust: str = "",
167
162
  ) -> pd.DataFrame:
168
163
  """
169
164
  腾讯财经-港股-AH-股票历史行情
@@ -187,9 +182,7 @@ def stock_zh_ah_daily(
187
182
  hk_stock_payload_copy.update({"_var": f"kline_day{adjust}{year}"})
188
183
  if adjust == "":
189
184
  hk_stock_payload_copy.update(
190
- {
191
- "param": f"hk{symbol},day,{year}-01-01,{int(year) + 1}-12-31,640,"
192
- }
185
+ {"param": f"hk{symbol},day,{year}-01-01,{int(year) + 1}-12-31,640,"}
193
186
  )
194
187
  else:
195
188
  hk_stock_payload_copy.update(
@@ -221,17 +214,13 @@ def stock_zh_ah_daily(
221
214
  params=hk_stock_payload_copy,
222
215
  headers=hk_stock_headers,
223
216
  )
224
- data_json = demjson.decode(
225
- r.text[r.text.find("{"): r.text.rfind("}") + 1]
226
- )
217
+ data_json = demjson.decode(r.text[r.text.find("{") : r.text.rfind("}") + 1])
227
218
  try:
228
219
  if adjust == "":
229
220
  temp_df = pd.DataFrame(data_json["data"][f"hk{symbol}"]["day"])
230
221
  else:
231
- temp_df = pd.DataFrame(
232
- data_json["data"][f"hk{symbol}"][f"{adjust}day"]
233
- )
234
- except:
222
+ temp_df = pd.DataFrame(data_json["data"][f"hk{symbol}"][f"{adjust}day"])
223
+ except: # noqa
235
224
  continue
236
225
  if adjust != "" and not temp_df.empty:
237
226
  temp_df.columns = [
@@ -248,8 +237,16 @@ def stock_zh_ah_daily(
248
237
  temp_df = temp_df[["日期", "开盘", "收盘", "最高", "最低", "成交量"]]
249
238
  elif not temp_df.empty:
250
239
  try:
251
- temp_df.columns = ["日期", "开盘", "收盘", "最高", "最低", "成交量", "_"]
252
- except:
240
+ temp_df.columns = [
241
+ "日期",
242
+ "开盘",
243
+ "收盘",
244
+ "最高",
245
+ "最低",
246
+ "成交量",
247
+ "_",
248
+ ]
249
+ except: # noqa
253
250
  temp_df.columns = ["日期", "开盘", "收盘", "最高", "最低", "成交量"]
254
251
  temp_df = temp_df[["日期", "开盘", "收盘", "最高", "最低", "成交量"]]
255
252
  big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
@@ -1938,10 +1938,10 @@ if __name__ == "__main__":
1938
1938
  print(stock_hk_main_board_spot_em_df)
1939
1939
 
1940
1940
  stock_zh_a_hist_df = stock_zh_a_hist(
1941
- symbol="000001",
1941
+ symbol="600734",
1942
1942
  period="daily",
1943
- start_date="20170301",
1944
- end_date="20240528",
1943
+ start_date="20050501",
1944
+ end_date="20250304",
1945
1945
  adjust="hfq",
1946
1946
  )
1947
1947
  print(stock_zh_a_hist_df)
@@ -1,7 +1,7 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2024/4/14 15:00
4
+ Date: 2025/3/4 23:00
5
5
  Desc: 东方财富网-数据中心-沪深港通持股
6
6
  https://data.eastmoney.com/hsgtcg/
7
7
  沪深港通详情: https://finance.eastmoney.com/news/1622,20161118685370149.html
@@ -10,7 +10,8 @@ https://data.eastmoney.com/hsgtcg/
10
10
  import pandas as pd
11
11
  import requests
12
12
  from bs4 import BeautifulSoup
13
- from tqdm import tqdm
13
+
14
+ from akshare.utils.tqdm import get_tqdm
14
15
 
15
16
 
16
17
  def stock_hsgt_fund_flow_summary_em() -> pd.DataFrame:
@@ -187,9 +188,9 @@ def stock_hsgt_hold_stock_em(
187
188
  """
188
189
  url = "https://data.eastmoney.com/hsgtcg/list.html"
189
190
  r = requests.get(url)
190
- soup = BeautifulSoup(r.text, "lxml")
191
+ soup = BeautifulSoup(r.text, features="lxml")
191
192
  date = (
192
- soup.find("div", attrs={"class": "title"})
193
+ soup.find(name="div", attrs={"class": "title"})
193
194
  .find("span")
194
195
  .text.strip("(")
195
196
  .strip(")")
@@ -232,12 +233,13 @@ def stock_hsgt_hold_stock_em(
232
233
  data_json = r.json()
233
234
  page_num = data_json["result"]["pages"]
234
235
  big_df = pd.DataFrame()
236
+ tqdm = get_tqdm()
235
237
  for page in tqdm(range(1, page_num + 1), leave=False):
236
238
  params.update({"pageNumber": page})
237
239
  r = requests.get(url, params=params)
238
240
  data_json = r.json()
239
241
  temp_df = pd.DataFrame(data_json["result"]["data"])
240
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
242
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
241
243
 
242
244
  big_df.reset_index(inplace=True)
243
245
  big_df["index"] = range(1, len(big_df) + 1)
@@ -375,17 +377,18 @@ def stock_hsgt_stock_statistics_em(
375
377
  params.update(
376
378
  {"filter": f"""(INTERVAL_TYPE="1")(RN=1)(TRADE_DATE='{start_date}')"""}
377
379
  )
378
- url = "http://datacenter-web.eastmoney.com/api/data/v1/get"
380
+ url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
379
381
  r = requests.get(url, params=params)
380
382
  data_json = r.json()
381
383
  total_page = data_json["result"]["pages"]
382
384
  big_df = pd.DataFrame()
385
+ tqdm = get_tqdm()
383
386
  for page in tqdm(range(1, int(total_page) + 1), leave=False):
384
387
  params.update({"pageNumber": page})
385
388
  r = requests.get(url, params=params)
386
389
  data_json = r.json()
387
390
  temp_df = pd.DataFrame(data_json["result"]["data"])
388
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
391
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
389
392
 
390
393
  big_df.columns = [
391
394
  "-",
@@ -474,12 +477,13 @@ def stock_hsgt_stock_statistics_em(
474
477
  data_json = r.json()
475
478
  total_page = data_json["result"]["pages"]
476
479
  big_df = pd.DataFrame()
480
+ tqdm = get_tqdm()
477
481
  for page in tqdm(range(1, int(total_page) + 1), leave=False):
478
482
  params.update({"pageNumber": page})
479
483
  r = requests.get(url, params=params)
480
484
  data_json = r.json()
481
485
  temp_df = pd.DataFrame(data_json["result"]["data"])
482
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
486
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
483
487
 
484
488
  big_df.columns = [
485
489
  "-",
@@ -576,17 +580,18 @@ def stock_hsgt_stock_statistics_em(
576
580
  "filter": f"""(INTERVAL_TYPE="1")(MUTUAL_TYPE="001")(TRADE_DATE='{start_date}')"""
577
581
  }
578
582
  )
579
- url = "http://datacenter-web.eastmoney.com/api/data/v1/get"
583
+ url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
580
584
  r = requests.get(url, params=params)
581
585
  data_json = r.json()
582
586
  total_page = data_json["result"]["pages"]
583
587
  big_df = pd.DataFrame()
588
+ tqdm = get_tqdm()
584
589
  for page in tqdm(range(1, int(total_page) + 1), leave=False):
585
590
  params.update({"pageNumber": page})
586
591
  r = requests.get(url, params=params)
587
592
  data_json = r.json()
588
593
  temp_df = pd.DataFrame(data_json["result"]["data"])
589
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
594
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
590
595
  big_df.columns = [
591
596
  "-",
592
597
  "-",
@@ -673,7 +678,8 @@ def stock_hsgt_stock_statistics_em(
673
678
  "columns": "ALL",
674
679
  "source": "WEB",
675
680
  "client": "WEB",
676
- "filter": f"""(INTERVAL_TYPE="1")(MUTUAL_TYPE="003")(TRADE_DATE>='{start_date}')(TRADE_DATE<='{end_date}')""",
681
+ "filter": f"""(INTERVAL_TYPE="1")(MUTUAL_TYPE="003")(TRADE_DATE
682
+ >='{start_date}')(TRADE_DATE<='{end_date}')""",
677
683
  "reportName": "RPT_MUTUAL_STOCK_NORTHSTA",
678
684
  }
679
685
  if start_date == end_date:
@@ -682,17 +688,18 @@ def stock_hsgt_stock_statistics_em(
682
688
  "filter": f"""(INTERVAL_TYPE="1")(MUTUAL_TYPE="003")(TRADE_DATE='{start_date}')"""
683
689
  }
684
690
  )
685
- url = "http://datacenter-web.eastmoney.com/api/data/v1/get"
691
+ url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
686
692
  r = requests.get(url, params=params)
687
693
  data_json = r.json()
688
694
  total_page = data_json["result"]["pages"]
689
695
  big_df = pd.DataFrame()
696
+ tqdm = get_tqdm()
690
697
  for page in tqdm(range(1, int(total_page) + 1), leave=False):
691
698
  params.update({"pageNumber": page})
692
699
  r = requests.get(url, params=params)
693
700
  data_json = r.json()
694
701
  temp_df = pd.DataFrame(data_json["result"]["data"])
695
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
702
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
696
703
  big_df.columns = [
697
704
  "-",
698
705
  "-",
@@ -792,6 +799,10 @@ def stock_hsgt_institution_statistics_em(
792
799
  """
793
800
  start_date = "-".join([start_date[:4], start_date[4:6], start_date[6:]])
794
801
  end_date = "-".join([end_date[:4], end_date[4:6], end_date[6:]])
802
+ headers = {
803
+ "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) "
804
+ "Chrome/114.0.0.0 Safari/537.36"
805
+ }
795
806
  if market == "南向持股":
796
807
  params = {
797
808
  "sortColumns": "HOLD_DATE",
@@ -804,9 +815,6 @@ def stock_hsgt_institution_statistics_em(
804
815
  "client": "WEB",
805
816
  "filter": f"""(MARKET_TYPE="S")(HOLD_DATE>='{start_date}')(HOLD_DATE<='{end_date}')""",
806
817
  }
807
- headers = {
808
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
809
- }
810
818
  url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
811
819
  r = requests.get(url, params=params, headers=headers)
812
820
  data_json = r.json()
@@ -842,12 +850,20 @@ def stock_hsgt_institution_statistics_em(
842
850
  "持股市值变化-10日",
843
851
  ]
844
852
  ]
845
- temp_df["持股日期"] = pd.to_datetime(temp_df["持股日期"]).dt.date
846
- temp_df["持股只数"] = pd.to_numeric(temp_df["持股只数"])
847
- temp_df["持股市值"] = pd.to_numeric(temp_df["持股市值"])
848
- temp_df["持股市值变化-1日"] = pd.to_numeric(temp_df["持股市值变化-1日"])
849
- temp_df["持股市值变化-5日"] = pd.to_numeric(temp_df["持股市值变化-5日"])
850
- temp_df["持股市值变化-10日"] = pd.to_numeric(temp_df["持股市值变化-10日"])
853
+ temp_df["持股日期"] = pd.to_datetime(
854
+ temp_df["持股日期"], errors="coerce"
855
+ ).dt.date
856
+ temp_df["持股只数"] = pd.to_numeric(temp_df["持股只数"], errors="coerce")
857
+ temp_df["持股市值"] = pd.to_numeric(temp_df["持股市值"], errors="coerce")
858
+ temp_df["持股市值变化-1日"] = pd.to_numeric(
859
+ temp_df["持股市值变化-1日"], errors="coerce"
860
+ )
861
+ temp_df["持股市值变化-5日"] = pd.to_numeric(
862
+ temp_df["持股市值变化-5日"], errors="coerce"
863
+ )
864
+ temp_df["持股市值变化-10日"] = pd.to_numeric(
865
+ temp_df["持股市值变化-10日"], errors="coerce"
866
+ )
851
867
  return temp_df
852
868
 
853
869
  elif market == "北向持股":
@@ -862,20 +878,18 @@ def stock_hsgt_institution_statistics_em(
862
878
  "client": "WEB",
863
879
  "filter": f"""(MARKET_TYPE="N")(HOLD_DATE>='{start_date}')(HOLD_DATE<='{end_date}')""",
864
880
  }
865
- headers = {
866
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
867
- }
868
881
  url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
869
882
  r = requests.get(url, params=params, headers=headers)
870
883
  data_json = r.json()
871
884
  total_page = data_json["result"]["pages"]
872
885
  big_df = pd.DataFrame()
886
+ tqdm = get_tqdm()
873
887
  for page in tqdm(range(1, total_page + 1), leave=False):
874
888
  params.update({"pageNumber": page})
875
889
  r = requests.get(url, params=params, headers=headers)
876
890
  data_json = r.json()
877
891
  temp_df = pd.DataFrame(data_json["result"]["data"])
878
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
892
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
879
893
  big_df.columns = [
880
894
  "持股日期",
881
895
  "_",
@@ -907,12 +921,18 @@ def stock_hsgt_institution_statistics_em(
907
921
  "持股市值变化-10日",
908
922
  ]
909
923
  ]
910
- big_df["持股日期"] = pd.to_datetime(big_df["持股日期"]).dt.date
911
- big_df["持股只数"] = pd.to_numeric(big_df["持股只数"])
912
- big_df["持股市值"] = pd.to_numeric(big_df["持股市值"])
913
- big_df["持股市值变化-1日"] = pd.to_numeric(big_df["持股市值变化-1日"])
914
- big_df["持股市值变化-5日"] = pd.to_numeric(big_df["持股市值变化-5日"])
915
- big_df["持股市值变化-10日"] = pd.to_numeric(big_df["持股市值变化-10日"])
924
+ big_df["持股日期"] = pd.to_datetime(big_df["持股日期"], errors="coerce").dt.date
925
+ big_df["持股只数"] = pd.to_numeric(big_df["持股只数"], errors="coerce")
926
+ big_df["持股市值"] = pd.to_numeric(big_df["持股市值"], errors="coerce")
927
+ big_df["持股市值变化-1日"] = pd.to_numeric(
928
+ big_df["持股市值变化-1日"], errors="coerce"
929
+ )
930
+ big_df["持股市值变化-5日"] = pd.to_numeric(
931
+ big_df["持股市值变化-5日"], errors="coerce"
932
+ )
933
+ big_df["持股市值变化-10日"] = pd.to_numeric(
934
+ big_df["持股市值变化-10日"], errors="coerce"
935
+ )
916
936
  return big_df
917
937
  elif market == "沪股通持股":
918
938
  params = {
@@ -926,20 +946,18 @@ def stock_hsgt_institution_statistics_em(
926
946
  "client": "WEB",
927
947
  "filter": f"""(MARKET_TYPE="001")(HOLD_DATE>='{start_date}')(HOLD_DATE<='{end_date}')""",
928
948
  }
929
- headers = {
930
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
931
- }
932
949
  url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
933
950
  r = requests.get(url, params=params, headers=headers)
934
951
  data_json = r.json()
935
952
  total_page = data_json["result"]["pages"]
936
953
  big_df = pd.DataFrame()
954
+ tqdm = get_tqdm()
937
955
  for page in tqdm(range(1, total_page + 1), leave=False):
938
956
  params.update({"pageNumber": page})
939
957
  r = requests.get(url, params=params, headers=headers)
940
958
  data_json = r.json()
941
959
  temp_df = pd.DataFrame(data_json["result"]["data"])
942
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
960
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
943
961
  big_df.columns = [
944
962
  "持股日期",
945
963
  "_",
@@ -971,12 +989,18 @@ def stock_hsgt_institution_statistics_em(
971
989
  "持股市值变化-10日",
972
990
  ]
973
991
  ]
974
- big_df["持股日期"] = pd.to_datetime(big_df["持股日期"]).dt.date
975
- big_df["持股只数"] = pd.to_numeric(big_df["持股只数"])
976
- big_df["持股市值"] = pd.to_numeric(big_df["持股市值"])
977
- big_df["持股市值变化-1日"] = pd.to_numeric(big_df["持股市值变化-1日"])
978
- big_df["持股市值变化-5日"] = pd.to_numeric(big_df["持股市值变化-5日"])
979
- big_df["持股市值变化-10日"] = pd.to_numeric(big_df["持股市值变化-10日"])
992
+ big_df["持股日期"] = pd.to_datetime(big_df["持股日期"], errors="coerce").dt.date
993
+ big_df["持股只数"] = pd.to_numeric(big_df["持股只数"], errors="coerce")
994
+ big_df["持股市值"] = pd.to_numeric(big_df["持股市值"], errors="coerce")
995
+ big_df["持股市值变化-1日"] = pd.to_numeric(
996
+ big_df["持股市值变化-1日"], errors="coerce"
997
+ )
998
+ big_df["持股市值变化-5日"] = pd.to_numeric(
999
+ big_df["持股市值变化-5日"], errors="coerce"
1000
+ )
1001
+ big_df["持股市值变化-10日"] = pd.to_numeric(
1002
+ big_df["持股市值变化-10日"], errors="coerce"
1003
+ )
980
1004
  return big_df
981
1005
  elif market == "深股通持股":
982
1006
  params = {
@@ -990,20 +1014,18 @@ def stock_hsgt_institution_statistics_em(
990
1014
  "client": "WEB",
991
1015
  "filter": f"""(MARKET_TYPE="003")(HOLD_DATE>='{start_date}')(HOLD_DATE<='{end_date}')""",
992
1016
  }
993
- headers = {
994
- "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/83.0.4103.116 Safari/537.36"
995
- }
996
1017
  url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
997
1018
  r = requests.get(url, params=params, headers=headers)
998
1019
  data_json = r.json()
999
1020
  total_page = data_json["result"]["pages"]
1000
1021
  big_df = pd.DataFrame()
1022
+ tqdm = get_tqdm()
1001
1023
  for page in tqdm(range(1, total_page + 1), leave=False):
1002
1024
  params.update({"pageNumber": page})
1003
1025
  r = requests.get(url, params=params, headers=headers)
1004
1026
  data_json = r.json()
1005
1027
  temp_df = pd.DataFrame(data_json["result"]["data"])
1006
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
1028
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
1007
1029
  big_df.columns = [
1008
1030
  "持股日期",
1009
1031
  "_",
@@ -1035,12 +1057,18 @@ def stock_hsgt_institution_statistics_em(
1035
1057
  "持股市值变化-10日",
1036
1058
  ]
1037
1059
  ]
1038
- big_df["持股日期"] = pd.to_datetime(big_df["持股日期"]).dt.date
1039
- big_df["持股只数"] = pd.to_numeric(big_df["持股只数"])
1040
- big_df["持股市值"] = pd.to_numeric(big_df["持股市值"])
1041
- big_df["持股市值变化-1日"] = pd.to_numeric(big_df["持股市值变化-1日"])
1042
- big_df["持股市值变化-5日"] = pd.to_numeric(big_df["持股市值变化-5日"])
1043
- big_df["持股市值变化-10日"] = pd.to_numeric(big_df["持股市值变化-10日"])
1060
+ big_df["持股日期"] = pd.to_datetime(big_df["持股日期"], errors="coerce").dt.date
1061
+ big_df["持股只数"] = pd.to_numeric(big_df["持股只数"], errors="coerce")
1062
+ big_df["持股市值"] = pd.to_numeric(big_df["持股市值"], errors="coerce")
1063
+ big_df["持股市值变化-1日"] = pd.to_numeric(
1064
+ big_df["持股市值变化-1日"], errors="coerce"
1065
+ )
1066
+ big_df["持股市值变化-5日"] = pd.to_numeric(
1067
+ big_df["持股市值变化-5日"], errors="coerce"
1068
+ )
1069
+ big_df["持股市值变化-10日"] = pd.to_numeric(
1070
+ big_df["持股市值变化-10日"], errors="coerce"
1071
+ )
1044
1072
  return big_df
1045
1073
 
1046
1074
 
@@ -1053,6 +1081,10 @@ def stock_hsgt_hist_em(symbol: str = "北向资金") -> pd.DataFrame:
1053
1081
  :return: 沪深港通历史数据
1054
1082
  :rtype: pandas.DataFrame
1055
1083
  """
1084
+ import warnings
1085
+
1086
+ warnings.filterwarnings(action="ignore", category=FutureWarning)
1087
+ url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
1056
1088
  symbol_map = {
1057
1089
  "北向资金": "5",
1058
1090
  "沪股通": "1",
@@ -1061,7 +1093,6 @@ def stock_hsgt_hist_em(symbol: str = "北向资金") -> pd.DataFrame:
1061
1093
  "港股通沪": "2",
1062
1094
  "港股通深": "4",
1063
1095
  }
1064
- url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
1065
1096
  params = {
1066
1097
  "sortColumns": "TRADE_DATE",
1067
1098
  "sortTypes": "-1",
@@ -1076,13 +1107,16 @@ def stock_hsgt_hist_em(symbol: str = "北向资金") -> pd.DataFrame:
1076
1107
  r = requests.get(url, params=params)
1077
1108
  data_json = r.json()
1078
1109
  total_page = data_json["result"]["pages"]
1079
- big_df = pd.DataFrame()
1110
+ temp_list = []
1111
+ tqdm = get_tqdm()
1080
1112
  for page in tqdm(range(1, int(total_page) + 1), leave=False):
1081
1113
  params.update({"pageNumber": page})
1082
1114
  r = requests.get(url, params=params)
1083
1115
  data_json = r.json()
1084
1116
  temp_df = pd.DataFrame(data_json["result"]["data"])
1085
- big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
1117
+ temp_list.append(temp_df)
1118
+
1119
+ big_df = pd.concat(objs=temp_list, ignore_index=True)
1086
1120
  if symbol == "北向资金":
1087
1121
  index_name = "沪深300"
1088
1122
  elif symbol == "沪股通":
@@ -1173,7 +1207,7 @@ def stock_hsgt_board_rank_em(
1173
1207
  """
1174
1208
  url = "https://data.eastmoney.com/hsgtcg/hy.html"
1175
1209
  r = requests.get(url)
1176
- soup = BeautifulSoup(r.text, "lxml")
1210
+ soup = BeautifulSoup(r.text, features="lxml")
1177
1211
  current_date = soup.find(attrs={"id": "bkph_date"}).text.strip("(").strip(")")
1178
1212
  symbol_map = {
1179
1213
  "北向资金增持行业板块排行": "5",
@@ -1307,7 +1341,7 @@ def stock_hsgt_individual_em(stock: str = "002008") -> pd.DataFrame:
1307
1341
  :return: 具体股票-沪深港通持股
1308
1342
  :rtype: pandas.DataFrame
1309
1343
  """
1310
- url = "http://datacenter-web.eastmoney.com/api/data/v1/get"
1344
+ url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
1311
1345
  params = {
1312
1346
  "sortColumns": "TRADE_DATE",
1313
1347
  "sortTypes": "-1",
@@ -1357,15 +1391,23 @@ def stock_hsgt_individual_em(stock: str = "002008") -> pd.DataFrame:
1357
1391
  "持股市值变化-10日",
1358
1392
  ]
1359
1393
  ]
1360
- temp_df["持股日期"] = pd.to_datetime(temp_df["持股日期"]).dt.date
1361
- temp_df["当日收盘价"] = pd.to_numeric(temp_df["当日收盘价"])
1362
- temp_df["当日涨跌幅"] = pd.to_numeric(temp_df["当日涨跌幅"])
1363
- temp_df["持股数量"] = pd.to_numeric(temp_df["持股数量"])
1364
- temp_df["持股市值"] = pd.to_numeric(temp_df["持股市值"])
1365
- temp_df["持股数量占A股百分比"] = pd.to_numeric(temp_df["持股数量占A股百分比"])
1366
- temp_df["持股市值变化-1日"] = pd.to_numeric(temp_df["持股市值变化-1日"])
1367
- temp_df["持股市值变化-5日"] = pd.to_numeric(temp_df["持股市值变化-5日"])
1368
- temp_df["持股市值变化-10日"] = pd.to_numeric(temp_df["持股市值变化-10日"])
1394
+ temp_df["持股日期"] = pd.to_datetime(temp_df["持股日期"], errors="coerce").dt.date
1395
+ temp_df["当日收盘价"] = pd.to_numeric(temp_df["当日收盘价"], errors="coerce")
1396
+ temp_df["当日涨跌幅"] = pd.to_numeric(temp_df["当日涨跌幅"], errors="coerce")
1397
+ temp_df["持股数量"] = pd.to_numeric(temp_df["持股数量"], errors="coerce")
1398
+ temp_df["持股市值"] = pd.to_numeric(temp_df["持股市值"], errors="coerce")
1399
+ temp_df["持股数量占A股百分比"] = pd.to_numeric(
1400
+ temp_df["持股数量占A股百分比"], errors="coerce"
1401
+ )
1402
+ temp_df["持股市值变化-1日"] = pd.to_numeric(
1403
+ temp_df["持股市值变化-1日"], errors="coerce"
1404
+ )
1405
+ temp_df["持股市值变化-5日"] = pd.to_numeric(
1406
+ temp_df["持股市值变化-5日"], errors="coerce"
1407
+ )
1408
+ temp_df["持股市值变化-10日"] = pd.to_numeric(
1409
+ temp_df["持股市值变化-10日"], errors="coerce"
1410
+ )
1369
1411
  return temp_df
1370
1412
 
1371
1413
 
@@ -1386,7 +1428,7 @@ def stock_hsgt_individual_detail_em(
1386
1428
  :return: 沪深港通持股-具体股票详情
1387
1429
  :rtype: pandas.DataFrame
1388
1430
  """
1389
- url = "http://datacenter-web.eastmoney.com/api/data/v1/get"
1431
+ url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
1390
1432
  params = {
1391
1433
  "sortColumns": "HOLD_DATE",
1392
1434
  "sortTypes": "-1",
@@ -1396,7 +1438,9 @@ def stock_hsgt_individual_detail_em(
1396
1438
  "columns": "ALL",
1397
1439
  "source": "WEB",
1398
1440
  "client": "WEB",
1399
- "filter": f"""(SECURITY_CODE="{symbol}")(MARKET_CODE="003")(HOLD_DATE>='{'-'.join([start_date[:4], start_date[4:6], start_date[6:]])}')(HOLD_DATE<='{'-'.join([end_date[:4], end_date[4:6], end_date[6:]])}')""",
1441
+ "filter": f"""(SECURITY_CODE="{symbol}")(MARKET_CODE="003")(HOLD_DATE
1442
+ >='{'-'.join([start_date[:4], start_date[4:6], start_date[6:]])}')(HOLD_DATE
1443
+ <='{'-'.join([end_date[:4], end_date[4:6], end_date[6:]])}')""",
1400
1444
  }
1401
1445
  r = requests.get(url, params=params)
1402
1446
  data_json = r.json()
@@ -1405,19 +1449,22 @@ def stock_hsgt_individual_detail_em(
1405
1449
  except TypeError:
1406
1450
  params.update(
1407
1451
  {
1408
- "filter": f"""(SECURITY_CODE="{symbol}")(MARKET_CODE="001")(HOLD_DATE>='{'-'.join([start_date[:4], start_date[4:6], start_date[6:]])}')(HOLD_DATE<='{'-'.join([end_date[:4], end_date[4:6], end_date[6:]])}')""",
1452
+ "filter": f"""(SECURITY_CODE="{symbol}")(MARKET_CODE="001")(HOLD_DATE
1453
+ >='{'-'.join([start_date[:4], start_date[4:6], start_date[6:]])}')(HOLD_DATE
1454
+ <='{'-'.join([end_date[:4], end_date[4:6], end_date[6:]])}')""",
1409
1455
  }
1410
1456
  )
1411
1457
  r = requests.get(url, params=params)
1412
1458
  data_json = r.json()
1413
1459
  total_page = data_json["result"]["pages"]
1414
1460
  big_df = pd.DataFrame()
1461
+ tqdm = get_tqdm()
1415
1462
  for page in tqdm(range(1, int(total_page) + 1), leave=False):
1416
1463
  params.update({"pageNumber": page})
1417
1464
  r = requests.get(url, params=params)
1418
1465
  data_json = r.json()
1419
1466
  temp_df = pd.DataFrame(data_json["result"]["data"])
1420
- big_df = pd.concat([big_df, temp_df], ignore_index=True)
1467
+ big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
1421
1468
  big_df.rename(
1422
1469
  columns={
1423
1470
  "SECUCODE": "-",
@@ -1454,15 +1501,23 @@ def stock_hsgt_individual_detail_em(
1454
1501
  "持股市值变化-10日",
1455
1502
  ]
1456
1503
  ]
1457
- big_df["持股日期"] = pd.to_datetime(big_df["持股日期"]).dt.date
1458
- big_df["当日收盘价"] = pd.to_numeric(big_df["当日收盘价"])
1459
- big_df["当日涨跌幅"] = pd.to_numeric(big_df["当日涨跌幅"])
1460
- big_df["持股数量"] = pd.to_numeric(big_df["持股数量"])
1461
- big_df["持股市值"] = pd.to_numeric(big_df["持股市值"])
1462
- big_df["持股数量占A股百分比"] = pd.to_numeric(big_df["持股数量占A股百分比"])
1463
- big_df["持股市值变化-1日"] = pd.to_numeric(big_df["持股市值变化-1日"])
1464
- big_df["持股市值变化-5日"] = pd.to_numeric(big_df["持股市值变化-5日"])
1465
- big_df["持股市值变化-10日"] = pd.to_numeric(big_df["持股市值变化-10日"])
1504
+ big_df["持股日期"] = pd.to_datetime(big_df["持股日期"], errors="coerce").dt.date
1505
+ big_df["当日收盘价"] = pd.to_numeric(big_df["当日收盘价"], errors="coerce")
1506
+ big_df["当日涨跌幅"] = pd.to_numeric(big_df["当日涨跌幅"], errors="coerce")
1507
+ big_df["持股数量"] = pd.to_numeric(big_df["持股数量"], errors="coerce")
1508
+ big_df["持股市值"] = pd.to_numeric(big_df["持股市值"], errors="coerce")
1509
+ big_df["持股数量占A股百分比"] = pd.to_numeric(
1510
+ big_df["持股数量占A股百分比"], errors="coerce"
1511
+ )
1512
+ big_df["持股市值变化-1日"] = pd.to_numeric(
1513
+ big_df["持股市值变化-1日"], errors="coerce"
1514
+ )
1515
+ big_df["持股市值变化-5日"] = pd.to_numeric(
1516
+ big_df["持股市值变化-5日"], errors="coerce"
1517
+ )
1518
+ big_df["持股市值变化-10日"] = pd.to_numeric(
1519
+ big_df["持股市值变化-10日"], errors="coerce"
1520
+ )
1466
1521
  return big_df
1467
1522
 
1468
1523
 
@@ -1533,7 +1588,7 @@ if __name__ == "__main__":
1533
1588
  )
1534
1589
  print(stock_hsgt_institution_statistics_em_df)
1535
1590
 
1536
- stock_hsgt_hist_em_df = stock_hsgt_hist_em(symbol="北向资金")
1591
+ stock_hsgt_hist_em_df = stock_hsgt_hist_em(symbol="港股通沪")
1537
1592
  print(stock_hsgt_hist_em_df)
1538
1593
 
1539
1594
  stock_hsgt_board_rank_em_df = stock_hsgt_board_rank_em(
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: akshare
3
- Version: 1.16.25
3
+ Version: 1.16.26
4
4
  Summary: AKShare is an elegant and simple financial data interface library for Python, built for human beings!
5
5
  Home-page: https://github.com/akfamily/akshare
6
6
  Author: AKFamily
@@ -1,4 +1,4 @@
1
- akshare/__init__.py,sha256=ZCSRxyBcXPvo6WGkeK1N314r9rg3I1k4Bzqvw7Riixk,189279
1
+ akshare/__init__.py,sha256=CLbUtSHcso_Ek4VKKUys1VCQs1Y6gKdhIQsi4_Ot9B4,189468
2
2
  akshare/datasets.py,sha256=rKuRNZrqi6IMsZ9nyvO3Rx02js0tH3zMLjz8HQNAoPQ,963
3
3
  akshare/exceptions.py,sha256=WEJjIhSmJ_xXNW6grwV4nufE_cfmmyuhmueVGiN1VAg,878
4
4
  akshare/request.py,sha256=HtFFf9MhfEibR-ETWe-1Tts6ELU4VKSqA-ghaXjegQM,4252
@@ -251,6 +251,7 @@ akshare/stock/stock_hold_num_cninfo.py,sha256=JY9LcZMhhTiCHfQJv4pwMrLrpUxTKGLE4o
251
251
  akshare/stock/stock_hot_rank_em.py,sha256=WMbadW1CFU3ppZHMSPjG2HtXgs7PgYGugNqmyrRQQe4,7349
252
252
  akshare/stock/stock_hot_search_baidu.py,sha256=Zex1iZB2qaqsxYPj6EmuzAXLbAa53W8LcePivGwrwAs,1769
253
253
  akshare/stock/stock_hot_up_em.py,sha256=sRwbpAHLzAylobUAIlVKuQo8vbuTA0Jt6gb1oiSgNwA,2509
254
+ akshare/stock/stock_hsgt_em.py,sha256=54eKgUM_F-bp6-bEsS2g5fQ928_6Fign76X8KCbWrMY,5250
254
255
  akshare/stock/stock_industry.py,sha256=7axm0G1EZc-G6uX9mNX4d3bHHYS_hq2tKFytxEj9YJM,5767
255
256
  akshare/stock/stock_industry_cninfo.py,sha256=dJ19zPeKRTbUrAoa8fpBB25caZuIjX92RePG8Pz-9h8,6560
256
257
  akshare/stock/stock_industry_pe_cninfo.py,sha256=0OjjsFGG90zJRZEBqaCsjKSpSAgrp3PpXzMtom_ll_s,4287
@@ -278,7 +279,7 @@ akshare/stock/stock_xq.py,sha256=A8bdpDlqj_jYVE1odsYTpWGC_ToDEwx5qN65KC6raCY,464
278
279
  akshare/stock/stock_zh_a_sina.py,sha256=ZobGnFMIR67ENk05ocqIkeiItLlgK67dW8ZjLdDss3s,18862
279
280
  akshare/stock/stock_zh_a_special.py,sha256=RRXkeZtRWm_maIPWgxvhBdX6eNybECjhSuEesZHRFJI,10294
280
281
  akshare/stock/stock_zh_a_tick_tx.py,sha256=TJUAWLKAeoLEaVVJQlj0t-1smZGoAO0X0rPsUPVhZZ4,2131
281
- akshare/stock/stock_zh_ah_tx.py,sha256=nq-dFlgHcgFS8in4HsbGyACTjfSTcixLaJC0yrQccbQ,9204
282
+ akshare/stock/stock_zh_ah_tx.py,sha256=1DfvP1xF9G4jDnqlacZiYIMWZBujxW9Kycre3yr6MhM,9212
282
283
  akshare/stock/stock_zh_b_sina.py,sha256=-sd0wG4zETsgrJSXivww4YieXfnVMNSfh3phsX_XBBc,16058
283
284
  akshare/stock/stock_zh_kcb_report.py,sha256=7zRovNGqXrPIYtUj9C3ivlYzfiudkaeBNiYPYlzDWkQ,2914
284
285
  akshare/stock/stock_zh_kcb_sina.py,sha256=ZKFoyq9Y-6LhBoYERc4Oqv5q3Llpne7ngDIZcCs8Yq0,9862
@@ -312,11 +313,11 @@ akshare/stock_feature/stock_gdhs.py,sha256=Z6ZMy1A03BqMu9TghcIu2Sd_wwEtpIH7qawHu
312
313
  akshare/stock_feature/stock_gdzjc_em.py,sha256=SHJH5iS3_NhvjTqRXF0vPooZl0s_ASeyZmNCC50ZYqs,4426
313
314
  akshare/stock_feature/stock_gpzy_em.py,sha256=FgyjVgdoxrtMM7WwxdQJxK0mYGJklIHaT9KmMCFmEPM,17869
314
315
  akshare/stock_feature/stock_gxl_lg.py,sha256=I8TpDEpFzadZSSyZisyIk6163mJlRxup91dmlBH4t4U,2641
315
- akshare/stock_feature/stock_hist_em.py,sha256=uxkhxn3O-JdvR29T7jhSkpgsPJkHHZsnUerG0bgg90w,69297
316
+ akshare/stock_feature/stock_hist_em.py,sha256=wNhjRRahEPaan-19vhDY7Nd9xBzxwtqG0emcfJCya8I,69297
316
317
  akshare/stock_feature/stock_hist_tx.py,sha256=WpLsbkG2didSx7lYNkSbTWNTrLhUKbcopfD18WO2Rlc,3397
317
318
  akshare/stock_feature/stock_hk_valuation_baidu.py,sha256=_sErx4UhNsSXJgXyPfrL0aPxkW53Mg1zH9gEKoziaCA,1968
318
319
  akshare/stock_feature/stock_hot_xq.py,sha256=NmoH4x-0hiDztj-YwzMFVIyOICQ2wUUBbhjt91q-tq4,9112
319
- akshare/stock_feature/stock_hsgt_em.py,sha256=A10L3LX44YrkcYi7kT9Y0-XK_r0mv9c50x5emshh25Q,56690
320
+ akshare/stock_feature/stock_hsgt_em.py,sha256=zYs5dWw0dTn0ZIwnR6uzlmC5CzFiwIavPNiceH7BOFU,57783
320
321
  akshare/stock_feature/stock_hsgt_exchange_rate.py,sha256=-oJZ83FUQrNJX_4GB5hS562IdrfJbCwr0d5ioYXtPrQ,7212
321
322
  akshare/stock_feature/stock_hsgt_min_em.py,sha256=KLeez7MQwBAcO-RT7n41LOikUfvXDGK0-G1n9av5mtY,2883
322
323
  akshare/stock_feature/stock_info.py,sha256=JSmJWrSzzq4sP4CgOU0mYGVcbXeWlRDQxNYtbSjJmiM,9043
@@ -382,8 +383,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
382
383
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
383
384
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
384
385
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
385
- akshare-1.16.25.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
386
- akshare-1.16.25.dist-info/METADATA,sha256=QFztm-EmNmrebatno-qfx60tSMJAcXsv37Q9r5XU8Zw,13847
387
- akshare-1.16.25.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
388
- akshare-1.16.25.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
389
- akshare-1.16.25.dist-info/RECORD,,
386
+ akshare-1.16.26.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
387
+ akshare-1.16.26.dist-info/METADATA,sha256=w0qJieekrLlG2MKkXCWDqRLTyufIC3Gg3gvS0AmWCF8,13847
388
+ akshare-1.16.26.dist-info/WHEEL,sha256=jB7zZ3N9hIM9adW7qlTAyycLYW9npaWKLRzaoVcLKcM,91
389
+ akshare-1.16.26.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
390
+ akshare-1.16.26.dist-info/RECORD,,