mns-common 1.4.0.2__py3-none-any.whl → 1.4.0.5__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 mns-common might be problematic. Click here for more details.
- mns_common/api/xueqiu/xue_qiu_k_line_api.py +22 -5
- mns_common/component/tfp/stock_tfp_api.py +82 -12
- {mns_common-1.4.0.2.dist-info → mns_common-1.4.0.5.dist-info}/METADATA +1 -1
- {mns_common-1.4.0.2.dist-info → mns_common-1.4.0.5.dist-info}/RECORD +6 -6
- {mns_common-1.4.0.2.dist-info → mns_common-1.4.0.5.dist-info}/WHEEL +0 -0
- {mns_common-1.4.0.2.dist-info → mns_common-1.4.0.5.dist-info}/top_level.txt +0 -0
|
@@ -54,9 +54,26 @@ def get_xue_qiu_k_line(symbol, period, cookie, end_time, hq):
|
|
|
54
54
|
data=response_data['data']['item'],
|
|
55
55
|
columns=response_data['data']['column']
|
|
56
56
|
)
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
57
|
+
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
# 1. 转换为 datetime(自动处理毫秒级时间戳)
|
|
65
|
+
df["beijing_time"] = pd.to_datetime(df["timestamp"], unit="ms")
|
|
66
|
+
|
|
67
|
+
# 2. 设置 UTC 时区
|
|
68
|
+
df["beijing_time"] = df["beijing_time"].dt.tz_localize("UTC")
|
|
69
|
+
|
|
70
|
+
# 3. 转换为北京时间(UTC+8)
|
|
71
|
+
df["beijing_time"] = df["beijing_time"].dt.tz_convert("Asia/Shanghai")
|
|
72
|
+
|
|
73
|
+
# 4. 提取年月日(格式:YYYY-MM-DD)
|
|
74
|
+
df["str_day"] = df["beijing_time"].dt.strftime("%Y-%m-%d")
|
|
75
|
+
del df["beijing_time"]
|
|
76
|
+
|
|
60
77
|
return df
|
|
61
78
|
else:
|
|
62
79
|
# 直接抛出带有明确信息的异常
|
|
@@ -65,8 +82,8 @@ def get_xue_qiu_k_line(symbol, period, cookie, end_time, hq):
|
|
|
65
82
|
|
|
66
83
|
if __name__ == '__main__':
|
|
67
84
|
number = 1
|
|
68
|
-
cookies =
|
|
85
|
+
cookies = 'cookiesu=431747207996803; device_id=e7bd664c2ad4091241066c3a2ddbd736; xq_is_login=1; u=9627701445; s=ck12tdw0na; bid=7a2d53b7ab3873ab7ec53349413f0a21_mb9aqxtx; xq_a_token=9367502e9138a95092fac9fb24c5348edb095013; xqat=9367502e9138a95092fac9fb24c5348edb095013; xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOjk2Mjc3MDE0NDUsImlzcyI6InVjIiwiZXhwIjoxNzUyMDM2NTM4LCJjdG0iOjE3NDk0NDQ1MzgzMDgsImNpZCI6ImQ5ZDBuNEFadXAifQ.rKuCHOgTHaMp0wRkvkPjNz8YrV6oia1xVAY35MmlYPlTvIYDEqsxqI3Qyz2dh5UuBC4TSlJUmVOEbvZzrM990-RaqT1rYCPjHaAZo4qDsOz34ypEAXJBzYaz32KPTGbM9lDwOFuHxeSUFeM0R-2Lhe3UbmRPU_zEBneuCQ_vrz4DkM98qswZ9emA3B8mty-Qa-40NrCb0xLZ52Oi8VKwEJXoPmlsEE3D2vxB0v0qEaKDjBSanCpe0mHCE4ds1yHaZvfV2zSRl1PYcCF85yiCtba3jYkQJ4lR2hmk9AyYOAtnQ-1aiYGjgNpe9ETJGvnoG_o3WUJmFFl0nAENqvviNQ; xq_r_token=59ae4e9f9cc1ed66343ff1e68a7b32c0d8c27983; Hm_lvt_1db88642e346389874251b5a1eded6e3=1749548204,1749603966,1749606594,1749630748; HMACCOUNT=16733F9B51C8BBB0; is_overseas=0; Hm_lpvt_1db88642e346389874251b5a1eded6e3=1749630957; ssxmod_itna=QqjOAKYIwGkYDQG0bGCYG2DmxewDAo40QDXDUqAQtGgnDFqAPDODCOG/iwQEgM8DbPKitDD5bh9xGXPmDA5DnGx7YDtr49v+i9gGB+eQpcAb4bRGApg4OQXWWOYB0hOEBDpAav72v1mDB3DbqDyKiIuB4GGf4GwDGoD34DiDDpfD03Db4D+nWrD7ORQMluokePDQ4GyDitQigWDA4DjIQx+G7bOPnbYDDNYeK+eIfYODYpogW0FrxqDAkDtgkbDjkPD/SGjcPDBnIkYepuEgqOp8CcaxBQD7dF=oeq8jmWNaegu/YNVBbIwCDIQGeWm3lxYWDVQG3WxOmDKID5CI3WmeYqqnDOGYu0PNb4DDPoWDbYxH/GeohS85lImlA5ot+Q0qDLizW+KaRxKoU8G08DUY2D9rN/riYGxtiqKOqxhKND+/HPeD; ssxmod_itna2=QqjOAKYIwGkYDQG0bGCYG2DmxewDAo40QDXDUqAQtGgnDFqAPDODCOG/iwQEgM8DbPKitDD5bhYxD3betID4WDLDlGWvDBq9DE0336bqjR87=Rad7dn=250R0FgdQyhaMthWK7TYTInPnkD/bGDDkB3YUTfXD4dyGD0AKw=fKlNSjmXgKBLeBgr9+CGx1qKqopRQHDtQ1daQVMwqWPa2+Z32+QuOaZc3WZXW=Pa821DB9ZXe30HfGwBv28yHVY7EmEY8yPcmMfMEMR6in3XQkYh0uCDLybC=hOxU/YkDdfxP1NRN3bLXK61i4z6hz1rKi7sBTQZ2Wjw33+O78=tSTK8dwbrKh==4+7RidD+4exl2+4Mb+Q1TobeGFsr7iGembt2QblAYrbKqDrRjsqYN9evSeQFk3tErsGdtAOsS3PgACx1mGe0mf2C5ZB5xhDKBD=7fsaKsP44D'
|
|
69
86
|
while True:
|
|
70
|
-
test_df = get_xue_qiu_k_line('
|
|
87
|
+
test_df = get_xue_qiu_k_line('SZ000001', 'day', cookies, '1749744000000', 'after')
|
|
71
88
|
print(number)
|
|
72
89
|
number = number + 1
|
|
@@ -5,7 +5,6 @@ file_path = os.path.abspath(__file__)
|
|
|
5
5
|
end = file_path.index('mns') + 16
|
|
6
6
|
project_path = file_path[0:end]
|
|
7
7
|
sys.path.append(project_path)
|
|
8
|
-
import akshare as ak
|
|
9
8
|
import mns_common.utils.date_handle_util as date_handle_util
|
|
10
9
|
from loguru import logger
|
|
11
10
|
import mns_common.utils.data_frame_util as data_frame_util
|
|
@@ -15,20 +14,87 @@ import mns_common.constant.db_name_constant as db_name_constant
|
|
|
15
14
|
|
|
16
15
|
mongodb_util = MongodbUtil('27017')
|
|
17
16
|
|
|
17
|
+
"""
|
|
18
|
+
Date: 2024/4/29 15:00
|
|
19
|
+
Desc: 东方财富网-数据中心-特色数据-停复牌信息
|
|
20
|
+
https://data.eastmoney.com/tfpxx/
|
|
21
|
+
"""
|
|
22
|
+
|
|
23
|
+
import pandas as pd
|
|
24
|
+
import requests
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
def stock_tfp_em(date: str = "20240426") -> pd.DataFrame:
|
|
28
|
+
"""
|
|
29
|
+
东方财富网-数据中心-特色数据-停复牌信息
|
|
30
|
+
https://data.eastmoney.com/tfpxx/
|
|
31
|
+
:param date: specific date as "2020-03-19"
|
|
32
|
+
:type date: str
|
|
33
|
+
:return: 停复牌信息表
|
|
34
|
+
:rtype: pandas.DataFrame
|
|
35
|
+
"""
|
|
36
|
+
url = "https://datacenter-web.eastmoney.com/api/data/v1/get"
|
|
37
|
+
params = {
|
|
38
|
+
"sortColumns": "SUSPEND_START_DATE",
|
|
39
|
+
"sortTypes": "-1",
|
|
40
|
+
"pageSize": "500",
|
|
41
|
+
"pageNumber": "1",
|
|
42
|
+
"reportName": "RPT_CUSTOM_SUSPEND_DATA_INTERFACE",
|
|
43
|
+
"columns": "ALL",
|
|
44
|
+
"source": "WEB",
|
|
45
|
+
"client": "WEB",
|
|
46
|
+
"filter": f"""(MARKET="全部")(DATETIME='{"-".join([date[:4], date[4:6], date[6:]])}')""",
|
|
47
|
+
}
|
|
48
|
+
r = requests.get(url, params=params)
|
|
49
|
+
data_json = r.json()
|
|
50
|
+
total_page = data_json["result"]["pages"]
|
|
51
|
+
big_df = pd.DataFrame()
|
|
52
|
+
for page in range(1, total_page + 1):
|
|
53
|
+
params.update({"pageNumber": page})
|
|
54
|
+
r = requests.get(url, params=params)
|
|
55
|
+
data_json = r.json()
|
|
56
|
+
temp_df = pd.DataFrame(data_json["result"]["data"])
|
|
57
|
+
big_df = pd.concat(objs=[big_df, temp_df], ignore_index=True)
|
|
58
|
+
|
|
59
|
+
big_df.reset_index(inplace=True)
|
|
60
|
+
|
|
61
|
+
big_df["SUSPEND_START_TIME"] = pd.to_datetime(big_df["SUSPEND_START_TIME"], errors="coerce").dt.date
|
|
62
|
+
big_df["SUSPEND_END_TIME"] = pd.to_datetime(
|
|
63
|
+
big_df["SUSPEND_END_TIME"], errors="coerce"
|
|
64
|
+
).dt.date
|
|
65
|
+
|
|
66
|
+
big_df["SUSPEND_START_DATE"] = pd.to_datetime(
|
|
67
|
+
big_df["SUSPEND_START_DATE"], errors="coerce"
|
|
68
|
+
).dt.date
|
|
69
|
+
big_df["PREDICT_RESUME_DATE"] = pd.to_datetime(
|
|
70
|
+
big_df["PREDICT_RESUME_DATE"], errors="coerce"
|
|
71
|
+
).dt.date
|
|
72
|
+
|
|
73
|
+
big_df = big_df[['index', 'SECURITY_CODE', 'SECURITY_NAME_ABBR', 'SUSPEND_START_TIME',
|
|
74
|
+
'SUSPEND_END_TIME', 'SUSPEND_EXPIRE', 'SUSPEND_REASON', 'TRADE_MARKET',
|
|
75
|
+
'SUSPEND_START_DATE',
|
|
76
|
+
'PREDICT_RESUME_DATE'
|
|
77
|
+
]]
|
|
78
|
+
|
|
79
|
+
return big_df
|
|
80
|
+
|
|
18
81
|
|
|
19
82
|
def get_stock_tfp_by_day(str_day):
|
|
20
|
-
stock_tfp_em_df =
|
|
83
|
+
stock_tfp_em_df = stock_tfp_em(date_handle_util.no_slash_date(str_day))
|
|
21
84
|
stock_tfp_em_df = stock_tfp_em_df.rename(
|
|
22
|
-
columns={'
|
|
23
|
-
'
|
|
24
|
-
'
|
|
25
|
-
'
|
|
26
|
-
'
|
|
27
|
-
|
|
28
|
-
'
|
|
29
|
-
'
|
|
30
|
-
|
|
31
|
-
'
|
|
85
|
+
columns={'index': 'index',
|
|
86
|
+
'SECURITY_CODE': 'symbol',
|
|
87
|
+
'SECURITY_NAME_ABBR': 'name',
|
|
88
|
+
'SUSPEND_START_TIME': 'sus_begin_time',
|
|
89
|
+
'SUSPEND_END_TIME': 'sus_end_time',
|
|
90
|
+
|
|
91
|
+
'SUSPEND_START_DATE': 'sus_begin_date',
|
|
92
|
+
'PREDICT_RESUME_DATE': 'resume_time',
|
|
93
|
+
|
|
94
|
+
'SUSPEND_EXPIRE': 'sus_period',
|
|
95
|
+
'SUSPEND_REASON': 'sus_reason',
|
|
96
|
+
'TRADE_MARKET': 'market',
|
|
97
|
+
|
|
32
98
|
})
|
|
33
99
|
return stock_tfp_em_df
|
|
34
100
|
|
|
@@ -60,3 +126,7 @@ def get_stock_tfp_symbol_from_db(str_day):
|
|
|
60
126
|
except BaseException as e:
|
|
61
127
|
logger.error("获取停牌信息异常:{}", e)
|
|
62
128
|
return ['666666']
|
|
129
|
+
|
|
130
|
+
|
|
131
|
+
if __name__ == '__main__':
|
|
132
|
+
get_stock_tfp_symbol_list_by_day('2025-06-21')
|
|
@@ -71,7 +71,7 @@ mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py,sha256=eICTYaHJYp2ccsHkeDnkzpJ
|
|
|
71
71
|
mns_common/api/us/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
72
72
|
mns_common/api/us/ths_us_company_info_api.py,sha256=qQjv4F-ovQ2uuu-FlBAnxjvVA7qj9y_x5WZtUoyoEW4,241
|
|
73
73
|
mns_common/api/xueqiu/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
74
|
-
mns_common/api/xueqiu/xue_qiu_k_line_api.py,sha256=
|
|
74
|
+
mns_common/api/xueqiu/xue_qiu_k_line_api.py,sha256=rDXFI_mRZ9D39OjwM26gTGZIBWDY0eVYzdAG8jN25Xc,4553
|
|
75
75
|
mns_common/component/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
|
|
76
76
|
mns_common/component/common_service_fun_api.py,sha256=ZPPqo-ZBwSJ23I_2xXGxXyN6emYrlPqUuBGjA2Cv4gs,6629
|
|
77
77
|
mns_common/component/cache/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
|
|
@@ -126,7 +126,7 @@ mns_common/component/self_choose/self_choose_service_api.py,sha256=v-ThYn5OMva-c
|
|
|
126
126
|
mns_common/component/task/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
127
127
|
mns_common/component/task/real_time_data_sync_check.py,sha256=Ss_7XRGCYPG5fwPLove2wtI-AF5r0x2S06DddaxyfY4,3333
|
|
128
128
|
mns_common/component/tfp/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
|
|
129
|
-
mns_common/component/tfp/stock_tfp_api.py,sha256=
|
|
129
|
+
mns_common/component/tfp/stock_tfp_api.py,sha256=_iScNNUmzEXeZ32PFQ_bFs3CErQk_188ESS3hUgCH7E,4455
|
|
130
130
|
mns_common/component/trade_date/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
|
|
131
131
|
mns_common/component/trade_date/trade_date_common_service_api.py,sha256=PHrcUjgLdNKbqyMGot0poKtiLBys_wRZoheMhPJE-U4,3032
|
|
132
132
|
mns_common/component/zt/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
|
|
@@ -152,7 +152,7 @@ mns_common/utils/date_handle_util.py,sha256=XS-MyA8_7k35LOCFAYOHgVcVkMft_Kc4Wa9U
|
|
|
152
152
|
mns_common/utils/db_util.py,sha256=hSmfNAN4vEeEaUva6_cicZEhb2jSnib-Gvk2reke1vc,2590
|
|
153
153
|
mns_common/utils/file_util.py,sha256=egWu6PenGPRp_ixrNTHKarT4dAnOT6FETR82EHUZJnQ,1042
|
|
154
154
|
mns_common/utils/ip_util.py,sha256=UTcYfz_uytB__6nlBf7T-izuI7hi4XdB6ET0sJgEel4,969
|
|
155
|
-
mns_common-1.4.0.
|
|
156
|
-
mns_common-1.4.0.
|
|
157
|
-
mns_common-1.4.0.
|
|
158
|
-
mns_common-1.4.0.
|
|
155
|
+
mns_common-1.4.0.5.dist-info/METADATA,sha256=uMWuC2SAXQOVQLx3eeukMndlQnWlGAAuQ7-9wHIsQcs,61
|
|
156
|
+
mns_common-1.4.0.5.dist-info/WHEEL,sha256=tZoeGjtWxWRfdplE7E3d45VPlLNQnvbKiYnx7gwAy8A,92
|
|
157
|
+
mns_common-1.4.0.5.dist-info/top_level.txt,sha256=ZC58kAR-8Hvc6U2xhYNBNLAh3mb6sZazbdj5nZpvEkQ,11
|
|
158
|
+
mns_common-1.4.0.5.dist-info/RECORD,,
|
|
File without changes
|
|
File without changes
|