akshare 1.15.87__py3-none-any.whl → 1.15.89__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
@@ -2997,9 +2997,11 @@ amac_manager_cancelled_info # 中国证券投资基金业协会-信息公示-诚
2997
2997
  1.15.85 fix: fix stock_gddh_em interface
2998
2998
  1.15.86 fix: fix stock_zdhtmx_em interface
2999
2999
  1.15.87 fix: fix futures_index_ccidx interface
3000
+ 1.15.88 fix: fix stock_zh_a_spot_em interface
3001
+ 1.15.89 fix: fix stock_individual_info_em interface
3000
3002
  """
3001
3003
 
3002
- __version__ = "1.15.87"
3004
+ __version__ = "1.15.89"
3003
3005
  __author__ = "AKFamily"
3004
3006
 
3005
3007
  import sys
@@ -1,15 +1,16 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/3/26 17:30
4
+ Date: 2025/2/15 22:00
5
5
  Desc: 东方财富-ETF行情
6
6
  https://quote.eastmoney.com/sh513500.html
7
7
  """
8
8
 
9
9
  from functools import lru_cache
10
-
10
+ import math
11
11
  import pandas as pd
12
12
  import requests
13
+ from akshare.utils.tqdm import get_tqdm
13
14
 
14
15
 
15
16
  @lru_cache()
@@ -23,7 +24,7 @@ def _fund_etf_code_id_map_em() -> dict:
23
24
  url = "https://88.push2.eastmoney.com/api/qt/clist/get"
24
25
  params = {
25
26
  "pn": "1",
26
- "pz": "5000",
27
+ "pz": "200",
27
28
  "po": "1",
28
29
  "np": "1",
29
30
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -35,9 +36,22 @@ def _fund_etf_code_id_map_em() -> dict:
35
36
  "fields": "f12,f13",
36
37
  "_": "1672806290972",
37
38
  }
38
- r = requests.get(url, timeout=15, params=params)
39
+ r = requests.get(url, params=params, timeout=15)
39
40
  data_json = r.json()
40
- temp_df = pd.DataFrame(data_json["data"]["diff"])
41
+ total_page = math.ceil(data_json["data"]["total"] / 200)
42
+ temp_list = []
43
+ tqdm = get_tqdm()
44
+ for page in tqdm(range(1, total_page + 1), leave=False):
45
+ params.update(
46
+ {
47
+ "pn": page,
48
+ }
49
+ )
50
+ r = requests.get(url, params=params, timeout=15)
51
+ data_json = r.json()
52
+ inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
53
+ temp_list.append(inner_temp_df)
54
+ temp_df = pd.concat(temp_list, ignore_index=True)
41
55
  temp_dict = dict(zip(temp_df["f12"], temp_df["f13"]))
42
56
  return temp_dict
43
57
 
@@ -1,7 +1,7 @@
1
1
  # -*- coding:utf-8 -*-
2
2
  # !/usr/bin/env python
3
3
  """
4
- Date: 2023/8/11 11:44
4
+ Date: 2025/2/15 22:00
5
5
  Desc: 东方财富网-个股-股票信息
6
6
  https://quote.eastmoney.com/concept/sh603777.html?from=classic
7
7
  """
@@ -26,12 +26,18 @@ def stock_individual_info_em(
26
26
  :rtype: pandas.DataFrame
27
27
  """
28
28
  code_id_dict = code_id_map_em()
29
- url = "http://push2.eastmoney.com/api/qt/stock/get"
29
+ url = "https://push2.eastmoney.com/api/qt/stock/get"
30
30
  params = {
31
31
  "ut": "fa5fd1943c7b386f172d6893dbfba10b",
32
32
  "fltt": "2",
33
33
  "invt": "2",
34
- "fields": "f120,f121,f122,f174,f175,f59,f163,f43,f57,f58,f169,f170,f46,f44,f51,f168,f47,f164,f116,f60,f45,f52,f50,f48,f167,f117,f71,f161,f49,f530,f135,f136,f137,f138,f139,f141,f142,f144,f145,f147,f148,f140,f143,f146,f149,f55,f62,f162,f92,f173,f104,f105,f84,f85,f183,f184,f185,f186,f187,f188,f189,f190,f191,f192,f107,f111,f86,f177,f78,f110,f262,f263,f264,f267,f268,f255,f256,f257,f258,f127,f199,f128,f198,f259,f260,f261,f171,f277,f278,f279,f288,f152,f250,f251,f252,f253,f254,f269,f270,f271,f272,f273,f274,f275,f276,f265,f266,f289,f290,f286,f285,f292,f293,f294,f295",
34
+ "fields": "f120,f121,f122,f174,f175,f59,f163,f43,f57,f58,f169,f170,f46,f44,f51,f168,f47,"
35
+ "f164,f116,f60,f45,f52,f50,f48,f167,f117,f71,f161,f49,f530,f135,f136,f137,f138,"
36
+ "f139,f141,f142,f144,f145,f147,f148,f140,f143,f146,f149,f55,f62,f162,f92,f173,f104,"
37
+ "f105,f84,f85,f183,f184,f185,f186,f187,f188,f189,f190,f191,f192,f107,f111,f86,f177,f78,"
38
+ "f110,f262,f263,f264,f267,f268,f255,f256,f257,f258,f127,f199,f128,f198,f259,f260,f261,"
39
+ "f171,f277,f278,f279,f288,f152,f250,f251,f252,f253,f254,f269,f270,f271,f272,f273,f274,"
40
+ "f275,f276,f265,f266,f289,f290,f286,f285,f292,f293,f294,f295",
35
41
  "secid": f"{code_id_dict[symbol]}.{symbol}",
36
42
  "_": "1640157544804",
37
43
  }
@@ -1,15 +1,16 @@
1
1
  #!/usr/bin/env python
2
2
  # -*- coding:utf-8 -*-
3
3
  """
4
- Date: 2024/7/13 18:00
4
+ Date: 2025/2/15 21:00
5
5
  Desc: 东方财富网-行情首页-沪深京 A 股
6
6
  https://quote.eastmoney.com/
7
7
  """
8
8
 
9
9
  from functools import lru_cache
10
-
10
+ import math
11
11
  import pandas as pd
12
12
  import requests
13
+ from akshare.utils.tqdm import get_tqdm
13
14
 
14
15
 
15
16
  def stock_zh_a_spot_em() -> pd.DataFrame:
@@ -22,7 +23,7 @@ def stock_zh_a_spot_em() -> pd.DataFrame:
22
23
  url = "https://82.push2.eastmoney.com/api/qt/clist/get"
23
24
  params = {
24
25
  "pn": "1",
25
- "pz": "50000",
26
+ "pz": "200",
26
27
  "po": "1",
27
28
  "np": "1",
28
29
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -34,11 +35,22 @@ def stock_zh_a_spot_em() -> pd.DataFrame:
34
35
  "f20,f21,f23,f24,f25,f22,f11,f62,f128,f136,f115,f152",
35
36
  "_": "1623833739532",
36
37
  }
37
- r = requests.get(url, timeout=15, params=params)
38
+ r = requests.get(url, params=params, timeout=15)
38
39
  data_json = r.json()
39
- if not data_json["data"]["diff"]:
40
- return pd.DataFrame()
41
- temp_df = pd.DataFrame(data_json["data"]["diff"])
40
+ total_page = math.ceil(data_json["data"]["total"] / 200)
41
+ temp_list = []
42
+ tqdm = get_tqdm()
43
+ for page in tqdm(range(1, total_page + 1), leave=False):
44
+ params.update(
45
+ {
46
+ "pn": page,
47
+ }
48
+ )
49
+ r = requests.get(url, params=params, timeout=15)
50
+ data_json = r.json()
51
+ inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
52
+ temp_list.append(inner_temp_df)
53
+ temp_df = pd.concat(temp_list, ignore_index=True)
42
54
  temp_df.columns = [
43
55
  "_",
44
56
  "最新价",
@@ -950,7 +962,7 @@ def code_id_map_em() -> dict:
950
962
  url = "https://80.push2.eastmoney.com/api/qt/clist/get"
951
963
  params = {
952
964
  "pn": "1",
953
- "pz": "50000",
965
+ "pz": "200",
954
966
  "po": "1",
955
967
  "np": "1",
956
968
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -963,15 +975,27 @@ def code_id_map_em() -> dict:
963
975
  }
964
976
  r = requests.get(url, timeout=15, params=params)
965
977
  data_json = r.json()
966
- if not data_json["data"]["diff"]:
967
- return dict()
968
- temp_df = pd.DataFrame(data_json["data"]["diff"])
978
+ total_page = math.ceil(data_json["data"]["total"] / 200)
979
+ temp_list = []
980
+ tqdm = get_tqdm()
981
+ for page in tqdm(range(1, total_page + 1), leave=False):
982
+ params.update(
983
+ {
984
+ "pn": page,
985
+ }
986
+ )
987
+ r = requests.get(url, params=params, timeout=15)
988
+ data_json = r.json()
989
+ inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
990
+ temp_list.append(inner_temp_df)
991
+ temp_df = pd.concat(temp_list, ignore_index=True)
969
992
  temp_df["market_id"] = 1
970
993
  temp_df.columns = ["sh_code", "sh_id"]
971
994
  code_id_dict = dict(zip(temp_df["sh_code"], temp_df["sh_id"]))
995
+
972
996
  params = {
973
997
  "pn": "1",
974
- "pz": "50000",
998
+ "pz": "200",
975
999
  "po": "1",
976
1000
  "np": "1",
977
1001
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -984,14 +1008,26 @@ def code_id_map_em() -> dict:
984
1008
  }
985
1009
  r = requests.get(url, timeout=15, params=params)
986
1010
  data_json = r.json()
987
- if not data_json["data"]["diff"]:
988
- return dict()
989
- temp_df_sz = pd.DataFrame(data_json["data"]["diff"])
1011
+ total_page = math.ceil(data_json["data"]["total"] / 200)
1012
+ temp_list = []
1013
+ tqdm = get_tqdm()
1014
+ for page in tqdm(range(1, total_page + 1), leave=False):
1015
+ params.update(
1016
+ {
1017
+ "pn": page,
1018
+ }
1019
+ )
1020
+ r = requests.get(url, params=params, timeout=15)
1021
+ data_json = r.json()
1022
+ inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
1023
+ temp_list.append(inner_temp_df)
1024
+ temp_df_sz = pd.concat(temp_list, ignore_index=True)
990
1025
  temp_df_sz["sz_id"] = 0
991
1026
  code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["sz_id"])))
1027
+
992
1028
  params = {
993
1029
  "pn": "1",
994
- "pz": "50000",
1030
+ "pz": "200",
995
1031
  "po": "1",
996
1032
  "np": "1",
997
1033
  "ut": "bd1d9ddb04089700cf9c27f6f7426281",
@@ -1004,9 +1040,20 @@ def code_id_map_em() -> dict:
1004
1040
  }
1005
1041
  r = requests.get(url, timeout=15, params=params)
1006
1042
  data_json = r.json()
1007
- if not data_json["data"]["diff"]:
1008
- return dict()
1009
- temp_df_sz = pd.DataFrame(data_json["data"]["diff"])
1043
+ total_page = math.ceil(data_json["data"]["total"] / 200)
1044
+ temp_list = []
1045
+ tqdm = get_tqdm()
1046
+ for page in tqdm(range(1, total_page + 1), leave=False):
1047
+ params.update(
1048
+ {
1049
+ "pn": page,
1050
+ }
1051
+ )
1052
+ r = requests.get(url, params=params, timeout=15)
1053
+ data_json = r.json()
1054
+ inner_temp_df = pd.DataFrame(data_json["data"]["diff"])
1055
+ temp_list.append(inner_temp_df)
1056
+ temp_df_sz = pd.concat(temp_list, ignore_index=True)
1010
1057
  temp_df_sz["bj_id"] = 0
1011
1058
  code_id_dict.update(dict(zip(temp_df_sz["f12"], temp_df_sz["bj_id"])))
1012
1059
  return code_id_dict
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.2
2
2
  Name: akshare
3
- Version: 1.15.87
3
+ Version: 1.15.89
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=IYBCt-ujchTg4VREWnkTnX-buYA9aQmbWH849eD0ZeQ,186930
1
+ akshare/__init__.py,sha256=LyFCn2ZECu3MwtTWc49B6LDVoBm114cd9q8DcISB1xY,187028
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
@@ -86,7 +86,7 @@ akshare/fund/fund_amac.py,sha256=Dml3EgpJhmVgkttb0OdaWN41ynOCIbJ0-1qAPDWF0oo,338
86
86
  akshare/fund/fund_announcement.py,sha256=g5rcIC9vQ4HapZd0b7cDbFYzHu9V6bOKhwxRHVfmv8k,1848
87
87
  akshare/fund/fund_aum_em.py,sha256=dy1R1-0X48H8S-LPiuggNA5M-6MvQ08fnp5bytvCGPQ,3518
88
88
  akshare/fund/fund_em.py,sha256=nX0VA5JeiF-zRr1J10X-U9-pJj5KFDUAbovN1DWjvTo,40450
89
- akshare/fund/fund_etf_em.py,sha256=oEPVCg-CQvOfLS7bt69yshqPiUPbxDpWa-FnMF7GqIQ,17386
89
+ akshare/fund/fund_etf_em.py,sha256=Zr_pN1NfhpT_T8dvKYOXbK7fABsfwq05MlY6rUG7RyI,17878
90
90
  akshare/fund/fund_etf_sina.py,sha256=YV2KrqKMF_h8kgrywvWvRJx2oy62lhgizvHFk40E4Rk,7042
91
91
  akshare/fund/fund_etf_ths.py,sha256=vb_jy0h2-Kz2dNWUrwBYxPB0MAotv0KZgnFhE98ohSM,3432
92
92
  akshare/fund/fund_fee_em.py,sha256=rkA2qVEhuWBUTFlvEP-zY_4Fw7_vL9cDx9hR-P38yDk,4157
@@ -256,7 +256,7 @@ akshare/stock/stock_industry_cninfo.py,sha256=dJ19zPeKRTbUrAoa8fpBB25caZuIjX92Re
256
256
  akshare/stock/stock_industry_pe_cninfo.py,sha256=0OjjsFGG90zJRZEBqaCsjKSpSAgrp3PpXzMtom_ll_s,4287
257
257
  akshare/stock/stock_industry_sw.py,sha256=C0FjDg976EA0EksRS3sChbmJOZmOPEOzKCrHVs2YqTg,1441
258
258
  akshare/stock/stock_info.py,sha256=AqzLzsTlYTSExBtyrZZBjI-D-VROj9e7Sq37WKHJ7XQ,16314
259
- akshare/stock/stock_info_em.py,sha256=oPp2d9mSIvASXksTdDAY-pvFGTahEMZhKUqO0FTITPY,2548
259
+ akshare/stock/stock_info_em.py,sha256=F-K8ZzWW70KTzShP82semh8RKklUEot2zxuzNDum20I,2615
260
260
  akshare/stock/stock_intraday_em.py,sha256=r1DvqVpRMJH_Y14GmgbKXQUWYi_KFhnEvsHD0Mp384o,4532
261
261
  akshare/stock/stock_intraday_sina.py,sha256=HMuAAO2Teu4NUrOcBvyJdxYgWx-51qJCdtcqFmFNQg8,2359
262
262
  akshare/stock/stock_ipo_summary_cninfo.py,sha256=Ma-54GsOOhRWxilLH-Qmm0VVbpJQGf2XWKaJ8NBSgAY,3847
@@ -311,7 +311,7 @@ akshare/stock_feature/stock_gdhs.py,sha256=Z6ZMy1A03BqMu9TghcIu2Sd_wwEtpIH7qawHu
311
311
  akshare/stock_feature/stock_gdzjc_em.py,sha256=SHJH5iS3_NhvjTqRXF0vPooZl0s_ASeyZmNCC50ZYqs,4426
312
312
  akshare/stock_feature/stock_gpzy_em.py,sha256=FgyjVgdoxrtMM7WwxdQJxK0mYGJklIHaT9KmMCFmEPM,17869
313
313
  akshare/stock_feature/stock_gxl_lg.py,sha256=I8TpDEpFzadZSSyZisyIk6163mJlRxup91dmlBH4t4U,2641
314
- akshare/stock_feature/stock_hist_em.py,sha256=H8bbC0LJBvDTRnrhZvFtrMM8Y6H4LZk-C0KIPar1aQs,69201
314
+ akshare/stock_feature/stock_hist_em.py,sha256=ibI1uQvI-UwkQ9dvSWLMmGdOLbr9u_e083SUxbV20_8,70766
315
315
  akshare/stock_feature/stock_hist_tx.py,sha256=WpLsbkG2didSx7lYNkSbTWNTrLhUKbcopfD18WO2Rlc,3397
316
316
  akshare/stock_feature/stock_hk_valuation_baidu.py,sha256=_sErx4UhNsSXJgXyPfrL0aPxkW53Mg1zH9gEKoziaCA,1968
317
317
  akshare/stock_feature/stock_hot_xq.py,sha256=NmoH4x-0hiDztj-YwzMFVIyOICQ2wUUBbhjt91q-tq4,9112
@@ -380,8 +380,8 @@ akshare/utils/token_process.py,sha256=K4rGXjh_tgugbRcyOK2h2x0jP3PT65IIK7nxhUKhOe
380
380
  akshare/utils/tqdm.py,sha256=MuPNwcswkOGjwWQOMWXi9ZvQ_RmW4obCWRj2i7HM7FE,847
381
381
  tests/__init__.py,sha256=gNzhlO0UPjFq6Ieb38kaVIODXv4cTDByrdohAZnDYt4,82
382
382
  tests/test_func.py,sha256=j1MGYbZI2if2j_LY1S4FLsf4qfq4NwVqD5wmRlv5Log,832
383
- akshare-1.15.87.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
384
- akshare-1.15.87.dist-info/METADATA,sha256=0TbL6iLOFFIXCWenS6eBnCFZnVlY4F-1mx2W6GEXpQA,13679
385
- akshare-1.15.87.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
386
- akshare-1.15.87.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
387
- akshare-1.15.87.dist-info/RECORD,,
383
+ akshare-1.15.89.dist-info/LICENSE,sha256=mmSZCPgfHiVw34LXuFArd-SUgQtBJ_QsIlh-kWlDHfs,1073
384
+ akshare-1.15.89.dist-info/METADATA,sha256=cpy6yZYevRY0g9zZIsVxMQZ-zbXaDn9Eyekxplwr6S8,13679
385
+ akshare-1.15.89.dist-info/WHEEL,sha256=In9FTNxeP60KnTkGw7wk6mJPYd_dQSjEZmXdBdMCI-8,91
386
+ akshare-1.15.89.dist-info/top_level.txt,sha256=jsf9ZzZPmHaISTVumQPsAw7vv7Yv-PdEVW70SMEelQQ,14
387
+ akshare-1.15.89.dist-info/RECORD,,