mns-common 1.2.5.4__py3-none-any.whl → 1.2.5.7__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.

@@ -0,0 +1,7 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 16
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
@@ -0,0 +1,120 @@
1
+ import sys
2
+ import os
3
+
4
+ file_path = os.path.abspath(__file__)
5
+ end = file_path.index('mns') + 14
6
+ project_path = file_path[0:end]
7
+ sys.path.append(project_path)
8
+
9
+ import requests
10
+ from bs4 import BeautifulSoup
11
+ import pandas as pd
12
+ from loguru import logger
13
+
14
+
15
+ def get_hk_company_info(symbol, ths_cookie):
16
+ symbol = symbol[1:5]
17
+ symbol = "HK" + symbol
18
+ url = "https://basic.10jqka.com.cn/new/" + symbol + "/company.html"
19
+
20
+ headers = {
21
+ "Accept": "text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.7",
22
+ "Accept-Language": "zh-CN,zh;q=0.9",
23
+ "Cache-Control": "max-age=0",
24
+ "Connection": "keep-alive",
25
+ "Referer": "https://basic.10jqka.com.cn/new/HK1456/news.html",
26
+ "Sec-Fetch-Dest": "document",
27
+ "Sec-Fetch-Mode": "navigate",
28
+ "Sec-Fetch-Site": "same-origin",
29
+ "Sec-Fetch-User": "?1",
30
+ "Upgrade-Insecure-Requests": "1",
31
+ "User-Agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/129.0.0.0 Safari/537.36",
32
+ "sec-ch-ua": "\"Google Chrome\";v=\"129\", \"Not=A?Brand\";v=\"8\", \"Chromium\";v=\"129\"",
33
+ "sec-ch-ua-mobile": "?0",
34
+ "sec-ch-ua-platform": "\"macOS\"",
35
+ "cookie": ths_cookie
36
+ }
37
+ cookies = {
38
+ "Hm_lvt_722143063e4892925903024537075d0d": "1728263496",
39
+ "Hm_lvt_929f8b362150b1f77b477230541dbbc2": "1728263496",
40
+ "Hm_lvt_78c58f01938e4d85eaf619eae71b4ed1": "1728263496",
41
+ "u_ukey": "A10702B8689642C6BE607730E11E6E4A",
42
+ "u_uver": "1.0.0",
43
+ "u_dpass": "mZuXjNOJ5najLo9im8e7OFWfVDerAPcR%2F4NwI5iI52Z9Il1%2FHk%2FIWnu2ARoy1hTUHi80LrSsTFH9a%2B6rtRvqGg%3D%3D",
44
+ "u_did": "5DC9AE36023C4F578A90F6BD333F757C",
45
+ "u_ttype": "WEB",
46
+ "ttype": "WEB",
47
+ "user": "MDq%2BsNDQcE06Ok5vbmU6NTAwOjYxMzk4NTQ0ODo1LDEsMjM7NiwxLDIzOzcsMTExMTExMTExMTEwLDIzOzgsMTExMTAxMTEwMDAwMTExMTEwMDEwMDEwMDEwMDAwMDAsMjM7MzMsMDAwMTAwMDAwMDAwLDIzOzM2LDEwMDExMTExMDAwMDExMDAxMDExMTExMSwyMzs0NiwwMDAwMTExMTEwMDAwMDExMTExMTExMTEsMjM7NTEsMTEwMDAwMDAwMDAwMDAwMCwyMzs1OCwwMDAwMDAwMDAwMDAwMDAwMSwyMzs3OCwxLDIzOzg3LDAwMDAwMDAwMDAwMDAwMDAwMDAxMDAwMCwyMzsxMTksMDAwMDAwMDAwMDAwMDAwMDAwMTAxMDAwMDAsMjM7MTI1LDExLDIzOzQ0LDExLDQwOzEsMTAxLDQwOzIsMSw0MDszLDEsNDA7MTAyLDEsNDA6Mjc6Ojo2MDM5ODU0NDg6MTcyODI2MzUyMjo6OjE2MzQ1NjY5ODA6NjA0ODAwOjA6MTI4OGMyYzVhNjQ4OTBmNDM2MDE0YWM4NDkzMjA3ODFmOmRlZmF1bHRfNDox",
48
+ "userid": "603985448",
49
+ "u_name": "%BE%B0%D0%D0pM",
50
+ "escapename": "%25u666f%25u884cpM",
51
+ "ticket": "0ace7c286307aca34a80cbe0fb1d75a6",
52
+ "user_status": "0",
53
+ "utk": "9f7d91056c3e5b72e2559a2b45ba1e17",
54
+ "reviewJump": "nojump",
55
+ "searchGuide": "sg",
56
+ "usersurvey": "1",
57
+ "v": "A1DK4qi1A9ChlN_UVszdo2J-J5WnGTRlVv2IZ0ohHKt-hf6L8ikE86YNWPSZ",
58
+ "reviewJumphk": "nojump"
59
+ }
60
+
61
+ response = requests.get(url, headers=headers, cookies=cookies)
62
+ soup = BeautifulSoup(response.text, "lxml")
63
+
64
+ table_data_list = soup.find(attrs={'class': 'm_table'}).find_all('td')
65
+ # 初始化一个空的字典,用于存储数据
66
+ data = {}
67
+ # 遍历每个单元格
68
+ for cell in table_data_list:
69
+ try:
70
+ # 提取标题和内容
71
+ strong_tag = cell.find('strong')
72
+ span_tag = cell.find('span')
73
+
74
+ if strong_tag and span_tag:
75
+ key = strong_tag.get_text(strip=True).replace(':', '') # 获取标题
76
+ value = span_tag.get_text(strip=True) # 获取内容
77
+
78
+ # 将数据添加到字典中
79
+ data[key] = value
80
+ except BaseException as e:
81
+ logger.error("转换公司信息异常:{}", e)
82
+
83
+ # 将字典转换为 DataFrame
84
+ company_hk_df = pd.DataFrame([data])
85
+ company_hk_df.rename(columns={
86
+ '公司名称': "company_name",
87
+ '注册地址': "registered_address",
88
+ '英文名称': "english_name",
89
+ '所属行业': "industry",
90
+ '公司成立日期 ': "list_date",
91
+ '公司网址': "company_web_site",
92
+ '主营业务': "main_business",
93
+ '董 事 长': "chairman",
94
+ '证券事务代表': "securities_representative",
95
+ '员工人数': "employees",
96
+ '核 数 师 ': "auditor",
97
+ '法律顾问': "legal_adviser",
98
+ '年 结 日 ': "closing_date",
99
+ '电\u3000\u3000话': "telephone",
100
+ '传\u3000\u3000真': "fax",
101
+ '电\u3000\u3000邮': "e_mail",
102
+ '办公地址': "office_address"
103
+ }, inplace=True)
104
+ company_detail = soup.find(attrs={'class': 'yellow tip lh24'})
105
+
106
+ soup = BeautifulSoup(company_detail.next, 'html.parser')
107
+ text = soup.text
108
+ company_hk_df['company_detail'] = text
109
+ company_hk_df['symbol'] = symbol
110
+ return company_hk_df
111
+
112
+
113
+ from mns_common.db.MongodbUtil import MongodbUtil
114
+
115
+ mongodb_util = MongodbUtil('27017')
116
+ if __name__ == '__main__':
117
+ stock_account_info = mongodb_util.find_query_data('stock_account_info', {"type": "ths_cookie", })
118
+ ths_cookie_test = list(stock_account_info['cookie'])[0]
119
+ company_hk_df_test = get_hk_company_info('00839', ths_cookie_test)
120
+ print(company_hk_df_test)
@@ -53,6 +53,7 @@ def get_company_info(symbol: str = "688272") -> pd.DataFrame:
53
53
 
54
54
  # 获取股票详细信息
55
55
  # HK市场 https://basic.10jqka.com.cn/mobile/HK1456/profile.html https://basic.10jqka.com.cn/mobile/HK1456/company.html
56
+ # https://basic.10jqka.com.cn/new/HK1456/company.html
56
57
  # https://basic.10jqka.com.cn/astockph/briefinfo/index.html?showhead=0&fromshare=1&code=300430&marketid=33&client_userid=ESgcM&back_source=hyperlink&share_hxapp=isc&fontzoom=no#/company/ziliao
57
58
  def get_company_info_detail(symbol: str = "688272") -> pd.DataFrame:
58
59
  try:
@@ -1,4 +1,4 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: mns_common
3
- Version: 1.2.5.4
3
+ Version: 1.2.5.7
4
4
 
@@ -16,6 +16,8 @@ mns_common/api/em/east_money_stock_hk_api.py,sha256=JBMonPLMsz2YwsocCZtwEwtjqQ1f
16
16
  mns_common/api/em/east_money_stock_v2_api.py,sha256=HrvvQiKbIqhhiSBKSZV_hGlWHWFaUfzsHyfYb3oK8yk,14780
17
17
  mns_common/api/em/em_concept_index_api.py,sha256=lbW0emuCSlJ54Sj8o07AuTEfLmNfOPo3Cz4lwWiv4c8,8285
18
18
  mns_common/api/em/self_choose/__init__.py,sha256=vAy9qYgUgZL9Y0w3BBbqmZ9zES46pPnlJjO2hdtotp0,2673
19
+ mns_common/api/hk/__init__.py,sha256=wEg73KlZo-dU0yKGwpA1C2y6LZm4IBb94tNda1tqLeg,163
20
+ mns_common/api/hk/ths_hk_company_info_api.py,sha256=JPKfnZyFi2Q8yR34sbVCxcQiCqzV-Hip0v36QEdUqvg,5329
19
21
  mns_common/api/kpl/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
20
22
  mns_common/api/kpl/common/__init__.py,sha256=8b2PuXJM5fLoq71cWPXp695czQuaRtyR6OVHajGjDPc,161
21
23
  mns_common/api/kpl/common/kpl_common_api.py,sha256=leSgOCg5ClWbGCdIkeeMxUy_x1FcF7NlchaMvzvz1ow,6536
@@ -42,7 +44,7 @@ mns_common/api/ths/concept/app/ths_concept_detail_app.py,sha256=pPrpntV1tQlgdsSe
42
44
  mns_common/api/ths/concept/app/ths_concept_index_app.py,sha256=aXDiLxbr5CD_ULHaRv4fca6btvbjBCmsJFXuLce8eU8,7381
43
45
  mns_common/api/ths/concept/web/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
44
46
  mns_common/api/ths/concept/web/ths_common_js_api.py,sha256=ekU9BtSX0xFkeFDVn9QQG_qgQXhpSmZKGKpgkDbeYk4,381
45
- mns_common/api/ths/concept/web/ths_company_info_web.py,sha256=L8S11YSOWevJLlIQal7HuWW1mMKgulXPtRk9wG7dmAo,6615
47
+ mns_common/api/ths/concept/web/ths_company_info_web.py,sha256=Q_yofooG5ruwWQRDIieTqDiKWcfr8cGSLghLLsmoyVg,6670
46
48
  mns_common/api/ths/concept/web/ths_concept_detail_web.py,sha256=F7PIXPd1dbAR0VbqukeZYRWXEjZT-8Dxjj05lgdCSAc,8540
47
49
  mns_common/api/ths/concept/web/ths_concept_index_web.py,sha256=zULAWpnmpnwc2MOZt7fiMHuAFoJZoln50dunWCGCvHY,7300
48
50
  mns_common/api/ths/self_choose/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
@@ -62,7 +64,6 @@ mns_common/component/classify/symbol_classify_param.py,sha256=ZOXoZeZ2grVACrpRCQ
62
64
  mns_common/component/company/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
63
65
  mns_common/component/company/company_common_service_api.py,sha256=HHnLkhMgaOk6ZZoOJ2-E_R7-WeX1q0HtLM2IPAk06WE,7992
64
66
  mns_common/component/company/company_common_service_new_api.py,sha256=r7pP88K5mK8t-TFzntdOh-HvsaEXE1_FUHZTq1QPPBw,4904
65
- mns_common/component/company/company_hk_service_api.py,sha256=mHe5eBHV6v-0s5bUg0RutlerHsHLzmULrMlMFGdlgqM,859
66
67
  mns_common/component/concept/__init__.py,sha256=2U9DiKslxsWwLLEcZKjS8UiQPN1QgALvnK3HiJNIZE0,163
67
68
  mns_common/component/concept/kpl_concept_common_service_api.py,sha256=Ruc3INOhVjB0X1LeMRX0zL3uhv9OLweG2hj6wkZffow,3235
68
69
  mns_common/component/concept/ths_concept_common_service_api.py,sha256=KkbEnBTz3HZs8mSJ-2FX-UrPSlJfMOd8xSXRmtDpqPc,9682
@@ -116,7 +117,7 @@ mns_common/utils/date_handle_util.py,sha256=qkEyKLYiVq6qpKVp32MLKwRtGKVBK6AY5at2
116
117
  mns_common/utils/db_util.py,sha256=hSmfNAN4vEeEaUva6_cicZEhb2jSnib-Gvk2reke1vc,2590
117
118
  mns_common/utils/file_util.py,sha256=egWu6PenGPRp_ixrNTHKarT4dAnOT6FETR82EHUZJnQ,1042
118
119
  mns_common/utils/ip_util.py,sha256=UTcYfz_uytB__6nlBf7T-izuI7hi4XdB6ET0sJgEel4,969
119
- mns_common-1.2.5.4.dist-info/METADATA,sha256=0NAmgLRmLOvxesiwWw2vqrrwCZy5b_ni79TD1d42GdE,61
120
- mns_common-1.2.5.4.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
121
- mns_common-1.2.5.4.dist-info/top_level.txt,sha256=ZC58kAR-8Hvc6U2xhYNBNLAh3mb6sZazbdj5nZpvEkQ,11
122
- mns_common-1.2.5.4.dist-info/RECORD,,
120
+ mns_common-1.2.5.7.dist-info/METADATA,sha256=_ioduPoKLlmXbe6f_h9rfv33ra7w9z8gl2OfcTx6Cgg,61
121
+ mns_common-1.2.5.7.dist-info/WHEEL,sha256=GJ7t_kWBFywbagK5eo9IoUwLW6oyOeTKmQ-9iHFVNxQ,92
122
+ mns_common-1.2.5.7.dist-info/top_level.txt,sha256=ZC58kAR-8Hvc6U2xhYNBNLAh3mb6sZazbdj5nZpvEkQ,11
123
+ mns_common-1.2.5.7.dist-info/RECORD,,
@@ -1,25 +0,0 @@
1
- import sys
2
- import os
3
-
4
- file_path = os.path.abspath(__file__)
5
- end = file_path.index('mns') + 14
6
- project_path = file_path[0:end]
7
- sys.path.append(project_path)
8
- from functools import lru_cache
9
- from mns_common.db.MongodbUtil import MongodbUtil
10
- import pandas as pd
11
- import mns_common.utils.data_frame_util as data_frame_util
12
- import mns_common.component.common_service_fun_api as common_service_fun_api
13
- import mns_common.constant.db_name_constant as db_name_constant
14
-
15
- mongodb_util = MongodbUtil('27017')
16
-
17
-
18
- @lru_cache(maxsize=None)
19
- def get_hk_company_info():
20
- query_field = {'symbol': 1,
21
- 'name': 1,
22
- 'industry': 1,
23
- 'hk_ggt': 1}
24
- return mongodb_util.find_query_data_choose_field(db_name_constant.COMPANY_INFO_HK,
25
- {}, query_field)