mns-common 1.2.5.3__tar.gz → 1.2.5.6__tar.gz
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-1.2.5.3 → mns_common-1.2.5.6}/PKG-INFO +1 -1
- mns_common-1.2.5.6/mns_common/api/hk/ths_hk_company_info_api.py +120 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/web/ths_company_info_web.py +1 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py +4 -2
- {mns_common-1.2.5.3/mns_common/component/company → mns_common-1.2.5.6/mns_common/component/hk}/company_hk_service_api.py +9 -0
- mns_common-1.2.5.6/mns_common/component/redis_msg/__init__.py +7 -0
- mns_common-1.2.5.6/mns_common/component/self_choose/__init__.py +7 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/constant/db_name_constant.py +3 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/db/MongodbUtil.py +2 -2
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common.egg-info/PKG-INFO +1 -1
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common.egg-info/SOURCES.txt +4 -1
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/setup.py +1 -1
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/README.md +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/akshare/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/akshare/k_line_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/akshare/stock_bid_ask_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/akshare/stock_dt_pool.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/akshare/stock_zb_pool.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/akshare/stock_zt_pool_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/akshare/yjyg_sync_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/em/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/em/east_money_debt_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/em/east_money_etf_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/em/east_money_stock_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/em/east_money_stock_gdfx_free_top_10_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/em/east_money_stock_hk_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/em/east_money_stock_v2_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/em/em_concept_index_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/em/self_choose/__init__.py +0 -0
- {mns_common-1.2.5.3/mns_common/component/classify → mns_common-1.2.5.6/mns_common/api/hk}/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/common/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/common/kpl_common_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/concept/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/concept/kpl_concept_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/constant/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/constant/kpl_constant.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/industry/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/industry/kpl_industry_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/selection/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/selection/kpl_selection_plate_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/symbol/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/symbol/kpl_symbol_common_field_constant.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/msg/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/msg/push_msg_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/big_deal/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/big_deal/ths_big_deal_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/app/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/app/ths_concept_detail_app.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/app/ths_concept_index_app.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/web/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/web/ths_common_js_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/web/ths_concept_detail_web.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/web/ths_concept_index_web.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/self_choose/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/self_choose/ths_self_choose_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/wen_cai/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/wen_cai/ths_wen_cai_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/zt/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/zt/ths_stock_zt_pool_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/cache/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/cache/cache_service.py +0 -0
- {mns_common-1.2.5.3/mns_common/component/deal → mns_common-1.2.5.6/mns_common/component/classify}/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/classify/symbol_classify_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/classify/symbol_classify_param.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/common_service_fun_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/company/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/company/company_common_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/company/company_common_service_new_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/concept/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/concept/kpl_concept_common_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/concept/ths_concept_common_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/data/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/data/data_init_api.py +0 -0
- {mns_common-1.2.5.3/mns_common/component/price → mns_common-1.2.5.6/mns_common/component/deal}/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/deal/deal_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/deal/terminal_enum.py +0 -0
- {mns_common-1.2.5.3/mns_common/component/qmt → mns_common-1.2.5.6/mns_common/component/hk}/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/industry/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/industry/ths_industry_index_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/k_line/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/k_line/clean/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/k_line/clean/k_line_param.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/k_line/clean/sh_small_normal_zt_k_line_check_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/k_line/common/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/k_line/common/k_line_common_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/k_line/patterns/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/k_line/patterns/k_line_patterns_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/k_line/patterns/pattern_Enum.py +0 -0
- {mns_common-1.2.5.3/mns_common/component/redis_msg → mns_common-1.2.5.6/mns_common/component/price}/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/price/trade_price_service_api.py +0 -0
- {mns_common-1.2.5.3/mns_common/component/self_choose → mns_common-1.2.5.6/mns_common/component/qmt}/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/qmt/qmt_buy_service.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/real_time/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/real_time/real_time_common_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/redis_msg/redis_msg_publish_service.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/self_choose/black_list_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/self_choose/self_choose_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/trade_date/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/trade_date/trade_date_common_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/zt/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/zt/zt_common_service_api.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/constant/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/constant/black_list_classify_enum.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/constant/price_enum.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/constant/redis_msg_constant.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/constant/self_choose_constant.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/db/MongodbUtilLocal.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/db/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/utils/__init__.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/utils/async_fun.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/utils/cmd_util.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/utils/data_frame_util.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/utils/date_handle_util.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/utils/db_util.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/utils/file_util.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/utils/ip_util.py +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common.egg-info/dependency_links.txt +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common.egg-info/top_level.txt +0 -0
- {mns_common-1.2.5.3 → mns_common-1.2.5.6}/setup.cfg +0 -0
|
@@ -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
|
+
|
|
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)
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/web/ths_company_info_web.py
RENAMED
|
@@ -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:
|
|
@@ -273,6 +273,8 @@ def merge_zt_reason(now_zt_pool_df, str_day, last_trade_zt):
|
|
|
273
273
|
logger.error("获取涨停原因异常:{}", e)
|
|
274
274
|
|
|
275
275
|
last_trade_zt_copy = last_trade_zt.copy()
|
|
276
|
+
if "zt_reason" not in last_trade_zt.columns:
|
|
277
|
+
last_trade_zt_copy['zt_reason'] = '暂无'
|
|
276
278
|
last_trade_zt_copy = last_trade_zt_copy[['symbol', 'zt_reason']]
|
|
277
279
|
|
|
278
280
|
if data_frame_util.is_empty(zt_reason_df):
|
|
@@ -370,13 +372,13 @@ def zt_reason_group(zt_pool_df):
|
|
|
370
372
|
|
|
371
373
|
|
|
372
374
|
if __name__ == '__main__':
|
|
373
|
-
str_day_test = '2024-09-
|
|
375
|
+
str_day_test = '2024-09-30'
|
|
374
376
|
em_now_zt_pool_test = stock_zt_pool_api.stock_em_zt_pool_df(date_handle_util.no_slash_date(str_day_test))
|
|
375
377
|
ths_zt_pool_df = get_zt_reason(str_day_test)
|
|
376
378
|
|
|
377
379
|
em_now_zt_pool_test.loc[~(em_now_zt_pool_test['symbol'].isin(ths_zt_pool_df['symbol']))]
|
|
378
380
|
|
|
379
381
|
while True:
|
|
380
|
-
result_zt_df_test = get_now_zt_pool_with_reason(
|
|
382
|
+
result_zt_df_test = get_now_zt_pool_with_reason(str_day_test)
|
|
381
383
|
zt_reason_group(result_zt_df_test)
|
|
382
384
|
logger.info(1)
|
|
@@ -23,3 +23,12 @@ def get_hk_company_info():
|
|
|
23
23
|
'hk_ggt': 1}
|
|
24
24
|
return mongodb_util.find_query_data_choose_field(db_name_constant.COMPANY_INFO_HK,
|
|
25
25
|
{}, query_field)
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
@lru_cache(maxsize=None)
|
|
29
|
+
def get_hk_company_industry_info():
|
|
30
|
+
query_field = {'_id': 1,
|
|
31
|
+
'industry': 1,
|
|
32
|
+
'number': 1}
|
|
33
|
+
return mongodb_util.find_query_data_choose_field(db_name_constant.HK_COMPANY_INDUSTRY,
|
|
34
|
+
{}, query_field)
|
|
@@ -30,9 +30,9 @@ class MongodbUtil:
|
|
|
30
30
|
elif mac_address is not None and mac_address == ip_util.WINDOWS_MAC_ADDRESS_CD:
|
|
31
31
|
client = pymongo.MongoClient("mongodb://127.0.0.1:" + port + "/patience")
|
|
32
32
|
elif '192.168.1' in ip_util.get_host_ip() and mac_address is not None and mac_address == ip_util.APPLE_AIR_MAC_ADDRESS:
|
|
33
|
-
client = pymongo.MongoClient("mongodb://
|
|
33
|
+
client = pymongo.MongoClient("mongodb://127.0.0.1:" + port + "/patience")
|
|
34
34
|
else:
|
|
35
|
-
client = pymongo.MongoClient("mongodb://
|
|
35
|
+
client = pymongo.MongoClient("mongodb://127.0.0.1:" + port + "/patience")
|
|
36
36
|
return client.patience
|
|
37
37
|
|
|
38
38
|
def group(self, query, coll_name):
|
|
@@ -22,6 +22,8 @@ mns_common/api/em/east_money_stock_hk_api.py
|
|
|
22
22
|
mns_common/api/em/east_money_stock_v2_api.py
|
|
23
23
|
mns_common/api/em/em_concept_index_api.py
|
|
24
24
|
mns_common/api/em/self_choose/__init__.py
|
|
25
|
+
mns_common/api/hk/__init__.py
|
|
26
|
+
mns_common/api/hk/ths_hk_company_info_api.py
|
|
25
27
|
mns_common/api/kpl/__init__.py
|
|
26
28
|
mns_common/api/kpl/common/__init__.py
|
|
27
29
|
mns_common/api/kpl/common/kpl_common_api.py
|
|
@@ -68,7 +70,6 @@ mns_common/component/classify/symbol_classify_param.py
|
|
|
68
70
|
mns_common/component/company/__init__.py
|
|
69
71
|
mns_common/component/company/company_common_service_api.py
|
|
70
72
|
mns_common/component/company/company_common_service_new_api.py
|
|
71
|
-
mns_common/component/company/company_hk_service_api.py
|
|
72
73
|
mns_common/component/concept/__init__.py
|
|
73
74
|
mns_common/component/concept/kpl_concept_common_service_api.py
|
|
74
75
|
mns_common/component/concept/ths_concept_common_service_api.py
|
|
@@ -77,6 +78,8 @@ mns_common/component/data/data_init_api.py
|
|
|
77
78
|
mns_common/component/deal/__init__.py
|
|
78
79
|
mns_common/component/deal/deal_service_api.py
|
|
79
80
|
mns_common/component/deal/terminal_enum.py
|
|
81
|
+
mns_common/component/hk/__init__.py
|
|
82
|
+
mns_common/component/hk/company_hk_service_api.py
|
|
80
83
|
mns_common/component/industry/__init__.py
|
|
81
84
|
mns_common/component/industry/ths_industry_index_api.py
|
|
82
85
|
mns_common/component/k_line/__init__.py
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/em/east_money_stock_gdfx_free_top_10_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/selection/kpl_selection_plate_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/app/ths_concept_detail_app.py
RENAMED
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/app/ths_concept_index_app.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/web/ths_common_js_api.py
RENAMED
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/web/ths_concept_detail_web.py
RENAMED
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/concept/web/ths_concept_index_web.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/api/ths/self_choose/ths_self_choose_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/classify/symbol_classify_api.py
RENAMED
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/classify/symbol_classify_param.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/company/company_common_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/industry/ths_industry_index_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/k_line/patterns/pattern_Enum.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/price/trade_price_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.2.5.3 → mns_common-1.2.5.6}/mns_common/component/self_choose/black_list_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|