mns-common 1.3.5.4__tar.gz → 1.3.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.3.5.4 → mns_common-1.3.5.6}/PKG-INFO +1 -1
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/em/east_money_stock_us_api.py +2 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/em/east_money_stock_v2_api.py +6 -1
- mns_common-1.3.5.6/mns_common/api/xueqiu/xue_qiu_k_line_api.py +88 -0
- mns_common-1.3.5.6/mns_common/component/task/real_time_data_sync_check.py +97 -0
- mns_common-1.3.5.6/mns_common/component/tfp/__init__.py +7 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/constant/db_name_constant.py +2 -0
- mns_common-1.3.5.6/mns_common/db/v2/__init__.py +7 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common.egg-info/PKG-INFO +1 -1
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common.egg-info/SOURCES.txt +4 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/setup.py +1 -1
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/README.md +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/akshare/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/akshare/k_line_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/akshare/stock_bid_ask_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/akshare/stock_dt_pool.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/akshare/stock_zb_pool.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/akshare/stock_zt_pool_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/akshare/yjyg_sync_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/em/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/em/east_money_debt_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/em/east_money_etf_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/em/east_money_stock_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/em/east_money_stock_gdfx_free_top_10_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/em/east_money_stock_hk_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/em/em_concept_index_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/hk/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/hk/ths_hk_company_info_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/k_line/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/k_line/stock_k_line_data_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/k_line/stock_minute_data_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/common/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/common/kpl_common_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/common/kpl_common_field_constant.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/concept/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/concept/kpl_concept_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/constant/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/constant/kpl_constant.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/industry/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/industry/kpl_industry_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/selection/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/selection/kpl_selection_plate_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/symbol/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/symbol/kpl_symbol_common_field_constant.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/symbol/symbol_his_quotes_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/msg/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/msg/push_msg_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/qmt/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/qmt/qmt_minunte_tick_data.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/big_deal/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/big_deal/ths_big_deal_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/company/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/company/ths_company_announce_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/company/ths_company_info_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/app/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/app/ths_concept_detail_app.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/app/ths_concept_index_app.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/web/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/web/ths_common_js_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/web/ths_company_info_web.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/web/ths_concept_detail_web.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/web/ths_concept_index_web.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/self_choose/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/self_choose/ths_self_choose_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/wen_cai/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/wen_cai/ths_wen_cai_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/zt/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/zt/ths_stock_zt_pool_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/us/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/us/ths_us_company_info_api.py +0 -0
- {mns_common-1.3.5.4/mns_common/component/classify → mns_common-1.3.5.6/mns_common/api/xueqiu}/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/cache/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/cache/cache_service.py +0 -0
- {mns_common-1.3.5.4/mns_common/component/cookie → mns_common-1.3.5.6/mns_common/component/classify}/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/classify/symbol_classify_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/classify/symbol_classify_param.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/common_service_fun_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/company/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/company/company_common_service_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/company/company_common_service_new_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/concept/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/concept/kpl_concept_common_service_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/concept/ths_concept_common_service_api.py +0 -0
- {mns_common-1.3.5.4/mns_common/component/deal → mns_common-1.3.5.6/mns_common/component/cookie}/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/cookie/cookie_info_service.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/data/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/data/data_init_api.py +0 -0
- {mns_common-1.3.5.4/mns_common/component/hk → mns_common-1.3.5.6/mns_common/component/deal}/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/deal/deal_service_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/deal/terminal_enum.py +0 -0
- {mns_common-1.3.5.4/mns_common/component/price → mns_common-1.3.5.6/mns_common/component/hk}/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/hk/company_hk_service_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/industry/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/industry/ths_industry_index_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/k_line/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/k_line/clean/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/k_line/clean/k_line_param.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/k_line/clean/sh_small_normal_zt_k_line_check_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/k_line/common/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/k_line/common/k_line_common_service_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/k_line/patterns/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/k_line/patterns/k_line_patterns_service_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/k_line/patterns/pattern_Enum.py +0 -0
- {mns_common-1.3.5.4/mns_common/component/qmt → mns_common-1.3.5.6/mns_common/component/price}/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/price/trade_price_service_api.py +0 -0
- {mns_common-1.3.5.4/mns_common/component/redis_msg → mns_common-1.3.5.6/mns_common/component/qmt}/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/qmt/qmt_buy_service.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/real_time/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/real_time/real_time_common_service_api.py +0 -0
- {mns_common-1.3.5.4/mns_common/component/self_choose → mns_common-1.3.5.6/mns_common/component/redis_msg}/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/redis_msg/redis_msg_publish_service.py +0 -0
- {mns_common-1.3.5.4/mns_common/component/tfp → mns_common-1.3.5.6/mns_common/component/self_choose}/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/self_choose/black_list_service_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/self_choose/self_choose_service_api.py +0 -0
- {mns_common-1.3.5.4/mns_common/db/v2 → mns_common-1.3.5.6/mns_common/component/task}/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/tfp/stock_tfp_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/trade_date/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/trade_date/trade_date_common_service_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/zt/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/zt/zt_common_service_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/constant/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/constant/black_list_classify_enum.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/constant/east_money_stock_api.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/constant/extra_income_db_name.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/constant/price_enum.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/constant/redis_msg_constant.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/constant/self_choose_constant.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/db/MongodbUtil.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/db/MongodbUtilLocal.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/db/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/db/v2/MongodbUtilV2.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/utils/__init__.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/utils/async_fun.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/utils/cmd_util.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/utils/data_frame_util.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/utils/date_handle_util.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/utils/db_util.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/utils/file_util.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/utils/ip_util.py +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common.egg-info/dependency_links.txt +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common.egg-info/top_level.txt +0 -0
- {mns_common-1.3.5.4 → mns_common-1.3.5.6}/setup.cfg +0 -0
|
@@ -220,6 +220,8 @@ if __name__ == '__main__':
|
|
|
220
220
|
cookie_test = 'qgqp_b_id=1e0d79428176ed54bef8434efdc0e8c3; mtp=1; ct=QVRY_s8Tiag1WfK2tSW2n03qpsX-PD8aH_rIjKVooawX8K33UVnpIofK088lD1lguWlE_OEIpQwn3PJWFPhHvSvyvYr4Zka3l4vxtZfH1Uikjtyy9z1H4Swo0rQzMKXncVzBXiOo5TjE-Dy9fcoG3ZF7UVdQ35jp_cFwzOlpK5Y; ut=FobyicMgeV51lVMr4ZJXvn-72bp0oeSOvtzifFY_U7kBFtR6og4Usd-VtBM5XBBvHq0lvd9xXkvpIqWro9EDKmv6cbKOQGyawUSMcKVP57isZCaM7lWQ6jWXajvTfvV4mIR-W_MZNK8VY0lL9W4qNMniJ6PBn_gkJsSAJCadmsyI9cxmjx--gR4m54pdF_nie_y4iWHys83cmWR2R7Bt1KKqB25OmkfCQTJJqIf7QsqangVGMUHwMC39Z9QhrfCFHKVNrlqS503O6b9GitQnXtvUdJhCmomu; pi=4253366368931142%3Bp4253366368931142%3B%E8%82%A1%E5%8F%8B9x56I87727%3BYNigLZRW%2FzMdGgVDOJbwReDWnTPHl51dB0gQLiwaCf1XY98mlJYx6eJbsoYr5Nie%2BX1L%2BzaMsec99KkX%2BT29Ds1arfST7sIBXxjUQ3dp11IPUnXy64PaBFRTHzMRWnCFJvvhc%2FAI41rXSGXolC8YMxI%2BvyPS%2BuErwgOVjC5vvsIiKeO7TLyKkhqqQJPX%2F7RWC5Sf3QLh%3Bdwjn4Xho10%2FKjqOgTWs%2FJF4%2FkdKzeuBwM8sz9aLvJovejAkCAyGMyGYA6AE67Xk2Ki7x8zdfBifF2DG%2Fvf2%2BXAYN8ZVISSEWTIXh32Z5MxEacK4JBTkqyiD93e1vFBOFQ82BqaiVmntUq0V6FrTUHGeh1gG5Sg%3D%3D; uidal=4253366368931142%e8%82%a1%e5%8f%8b9x56I87727; sid=170711377; vtpst=|; quote_lt=1; websitepoptg_api_time=1715777390466; emshistory=%5B%22%E8%BD%AC%E5%80%BA%E6%A0%87%22%2C%22%E8%BD%AC%E5%80%BA%E6%A0%87%E7%9A%84%22%5D; st_si=00364513876913; st_asi=delete; HAList=ty-116-00700-%u817E%u8BAF%u63A7%u80A1%2Cty-1-688695-%u4E2D%u521B%u80A1%u4EFD%2Cty-1-600849-%u4E0A%u836F%u8F6C%u6362%2Cty-1-603361-%u6D59%u6C5F%u56FD%u7965%2Cty-1-603555-ST%u8D35%u4EBA%2Cty-0-000627-%u5929%u8302%u96C6%u56E2%2Cty-0-002470-%u91D1%u6B63%u5927%2Cty-0-832876-%u6167%u4E3A%u667A%u80FD%2Cty-0-300059-%u4E1C%u65B9%u8D22%u5BCC%2Cty-107-CWB-%u53EF%u8F6C%u503AETF-SPDR; st_pvi=26930719093675; st_sp=2024-04-28%2017%3A27%3A05; st_inirUrl=https%3A%2F%2Fcn.bing.com%2F; st_sn=23; st_psi=20240517111108288-113200301321-2767127768'
|
|
221
221
|
while True:
|
|
222
222
|
us_df = get_us_stock_real_time_quotes(cookie_test)
|
|
223
|
+
us_df = us_df.loc[us_df['flow_mv'] != 0]
|
|
224
|
+
us_df = us_df.sort_values(by=['amount'], ascending=False)
|
|
223
225
|
us_stock_df = us_df[[
|
|
224
226
|
"symbol",
|
|
225
227
|
"name",
|
|
@@ -161,8 +161,13 @@ def rename_real_time_quotes_df(temp_df):
|
|
|
161
161
|
"f103": "concept",
|
|
162
162
|
"f352": "average_price",
|
|
163
163
|
"f191": "hk_stock_code",
|
|
164
|
-
"f193": "hk_stock_name"
|
|
164
|
+
"f193": "hk_stock_name",
|
|
165
|
+
"f24": "sixty_day_chg",
|
|
166
|
+
"f25": "now_year_chg",
|
|
165
167
|
})
|
|
168
|
+
temp_df.loc[temp_df['sixty_day_chg'] == '-', 'total_share'] = 0
|
|
169
|
+
|
|
170
|
+
temp_df.loc[temp_df['now_year_chg'] == '-', 'now_year_chg'] = 0
|
|
166
171
|
temp_df.loc[temp_df['total_share'] == '-', 'total_share'] = 0
|
|
167
172
|
temp_df.loc[temp_df['flow_share'] == '-', 'flow_share'] = 0
|
|
168
173
|
temp_df.loc[temp_df['pe_ttm'] == '-', 'pe_ttm'] = 0
|
|
@@ -0,0 +1,88 @@
|
|
|
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)
|
|
8
|
+
from loguru import logger
|
|
9
|
+
import requests
|
|
10
|
+
import pandas as pd
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
# year 年
|
|
14
|
+
# quarter 季度
|
|
15
|
+
# month 月度
|
|
16
|
+
# week 周
|
|
17
|
+
# day 日
|
|
18
|
+
def get_xue_qiu_k_line(symbol, period):
|
|
19
|
+
url = "https://stock.xueqiu.com/v5/stock/chart/kline.json"
|
|
20
|
+
|
|
21
|
+
params = {
|
|
22
|
+
"symbol": symbol,
|
|
23
|
+
"begin": "1742574377493",
|
|
24
|
+
"period": period,
|
|
25
|
+
"type": "before",
|
|
26
|
+
"count": "-120084",
|
|
27
|
+
"indicator": "kline,pe,pb,ps,pcf,market_capital,agt,ggt,balance"
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
headers = {
|
|
31
|
+
"accept": "application/json, text/plain, */*",
|
|
32
|
+
"accept-language": "zh-CN,zh;q=0.9",
|
|
33
|
+
"origin": "https://xueqiu.com",
|
|
34
|
+
"priority": "u=1, i",
|
|
35
|
+
"referer": "https://xueqiu.com/S/SZ300879?md5__1038=n4%2BxgDniDQeWqxYwq0y%2BbDyG%2BYDtODuD7q%2BqRYID",
|
|
36
|
+
"sec-ch-ua": '"Chromium";v="134", "Not:A-Brand";v="24", "Google Chrome";v="134"',
|
|
37
|
+
"sec-ch-ua-mobile": "?0",
|
|
38
|
+
"sec-ch-ua-platform": '"Windows"',
|
|
39
|
+
"sec-fetch-dest": "empty",
|
|
40
|
+
"sec-fetch-mode": "cors",
|
|
41
|
+
"sec-fetch-site": "same-site",
|
|
42
|
+
"user-agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/134.0.0.0 Safari/537.36",
|
|
43
|
+
"cookie": "xq_a_token=cc9943aa6d41f0ae420f49b428f2f90a472b070a;"
|
|
44
|
+
" xqat=cc9943aa6d41f0ae420f49b428f2f90a472b070a; "
|
|
45
|
+
"xq_r_token=20869bd02083b2ef75d4d4b7654f827f00fdcd22;"
|
|
46
|
+
" xq_id_token=eyJ0eXAiOiJKV1QiLCJhbGciOiJSUzI1NiJ9.eyJ1aWQiOi0xLCJpc3MiOiJ1YyIsImV4cCI6MTc0NDc2NTA3MCwiY3RtIjoxNzQyNDg4OD"
|
|
47
|
+
"kyNDc1LCJjaWQiOiJkOWQwbjRBWnVwIn0.Ep9IIWPMwb85xYIJ_pmYTDmUmcySD4t5nv4LpYSqdLJzNzqgvzGFx6vowXm-ZtyePuppJxd2YjJDREHu7OkvZk"
|
|
48
|
+
"qHRGMGQOhuCDzyMQjpND2yTgyOTNkn2hNs0e5p4FihaSeRmLu8vQDU17No3LjM3y4-0caZ-8LNJnOm0Wet1uOD7h9ASf7sLRQCjGyB-Pd4D2r-213umj7c6TD"
|
|
49
|
+
"V5ud3rfTsUlCG7DwWMAdIZGkew5CX2WRXOz-G2Duf3d4GMRggiaLHVsP6PSTzOGUQBF1zAg5hprkxK3J_dV1SdiuaAZxJDp3FCFQ5vG0JkcOs9CLB5z-92kQ2-"
|
|
50
|
+
"YEhAkd3PCpGKQ; cookiesu=251742488951389; u=251742488951389; is_overseas=0; Hm_lvt_1db88642e346389874251b5a1eded6e3=1742488952; "
|
|
51
|
+
"Hm_lpvt_1db88642e346389874251b5a1eded6e3=1742488952; HMACCOUNT=A216813C8A2D1B76; device_id=e7bd664c2ad4091241066c3a2ddbd736; "
|
|
52
|
+
"ssxmod_itna=eqIxgDB7q+0=ei7qqAKG7D8D9DQqqiIqGHDyxW9P0CGDLxn4GQDUiHxttBmPvc7EkqE5gD0yG3wDA5Dnzx7YDt=SpND0mTAc3qACQIwPw+Ocyrm2tfA"
|
|
53
|
+
"br4MWHlPP5jokUkpQw5xB3DExGkeeu77xiirx0rD0eDPxDYDGbWD7PDoxDrF8YDjl7pOUgwoz4DKx0kDY5Dw1RADiPD7ZBDkOcwXSvmFxDzFZLaqle42Di3N+EsEzRfDi5"
|
|
54
|
+
"x79cwD7v3DlaPFsdD0119FgoIiya2PpBEv40OD0ILF4BfuYoA8872wprrZQ4F2G0YjEDQ0DO03e7qSh5tY7t0sOGe2GDNQKc3xeY5ldw7xDipwGg2QIhxjhrCtccU5ZUB="
|
|
55
|
+
"+VcwwiGxCeBGPyew=jp=lDqQ4ZAqzBqPj0=jh1Fxq7De903iYLYD; ssxmod_itna2=eqIxgDB7q+0=ei7qqAKG7D8D9DQqqiIqGHDyxW9P0CGDLxn4GQDUiHxttBmPvc7E"
|
|
56
|
+
"kqE5wDDcA73imLDD7Djbb5NZaEoD/zpofwEa9m=Fn7T5jOiFKWsbAb9Qi=utFFLry0Ii9=+TINLqBPqzemrFP/ehSZRDixpiEh5WeA5WXGvaHoKw+rEINZbPjOApkpEQG8cm="
|
|
57
|
+
"rHCN=0DUoI+HxcF6Zohnh3hUEcTYQykDVyXyfHsX9eFZAlAHxdWq/5qZ=Eh0KCAV2xA2/yKFtivK+DzQb0sajPwql5xkzLh966v0g6MzzUlc4SFYAv3YKBjP7rhhOdqmKEa"
|
|
58
|
+
"j6C6PKp+Pq2QEP6heBX7BU7iG=GGLA6IrDjYvHCDh1tr93XpUr9X9rPjYUvWxPI0RBwHUpC+fs6xsg07+ifjd9gU26do2K0lLwRhhPfppAKj5+gow2IN3KLQ0K1P/mY9BKKYAt"
|
|
59
|
+
"2Qx/34rb5evohIrUI=DKe1djnDvrDnjwcBbgK2lzA3eQVix=46cxf77D9GKug6PLBL0Fi67Htrl2K5CP9PQDHb1Yjx0ttRKjCU7hE3GIs2Y88AdxfF+Iuc2=IenBfqW52ngad82Y"
|
|
60
|
+
"8KvKqn5xEiODXgYCKgGxyOjl4+v9bvIm120i2pN6o6dBRZqxpvsA4S9YP2TPjS+1/4ZnVeYQ+4=UCevs5P3Qf2x6w8s=U7dD=cvG1skhxiD8Kjl32RGPC=4FDHIrQQoKGnixsWzp"
|
|
61
|
+
"Fb7F=PlrD/3=0F6DNx2hDnr4RDW7WGYSiPQFihqY15iS7GAr44w1+x/3wnYQ4=rN/wOitjqZ0N0FRpxlw/7PGeZADD"
|
|
62
|
+
}
|
|
63
|
+
try:
|
|
64
|
+
response = requests.get(
|
|
65
|
+
url=url,
|
|
66
|
+
params=params,
|
|
67
|
+
headers=headers
|
|
68
|
+
)
|
|
69
|
+
|
|
70
|
+
if response.status_code == 200:
|
|
71
|
+
response_data = response.json()
|
|
72
|
+
df = pd.DataFrame(
|
|
73
|
+
data=response_data['data']['item'],
|
|
74
|
+
columns=response_data['data']['column']
|
|
75
|
+
)
|
|
76
|
+
# 处理DataFrame列(秒级时间戳)
|
|
77
|
+
df['str_day'] = pd.to_datetime(df['timestamp'], unit='ms').dt.normalize()
|
|
78
|
+
df["str_day"] = df["str_day"].dt.strftime("%Y-%m-%d")
|
|
79
|
+
return df
|
|
80
|
+
else:
|
|
81
|
+
return pd.DataFrame()
|
|
82
|
+
except BaseException as e:
|
|
83
|
+
logger.error("同步股票年度数据出现异常:{},{}", symbol, e)
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
if __name__ == '__main__':
|
|
87
|
+
test_df = get_xue_qiu_k_line('SZ000001', 'year')
|
|
88
|
+
print(test_df)
|
|
@@ -0,0 +1,97 @@
|
|
|
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)
|
|
8
|
+
|
|
9
|
+
import datetime
|
|
10
|
+
import mns_common.utils.date_handle_util as date_util
|
|
11
|
+
from mns_common.db.MongodbUtil import MongodbUtil
|
|
12
|
+
import mns_common.constant.db_name_constant as db_name_constant
|
|
13
|
+
import mns_common.utils.cmd_util as cmd_util
|
|
14
|
+
import mns_common.utils.data_frame_util as data_frame_util
|
|
15
|
+
import time
|
|
16
|
+
from loguru import logger
|
|
17
|
+
|
|
18
|
+
mongodb_util = MongodbUtil('27017')
|
|
19
|
+
REAL_TIME_SCHEDULER_NAME = "realtime_quotes_now_sync"
|
|
20
|
+
# 实时同步 bat
|
|
21
|
+
REAL_TIME_TASK_NAME_PATH = 'H:\\real_time_task.bat'
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
# 获取同步任务pid
|
|
25
|
+
def get_real_time_quotes_task(all_cmd_processes):
|
|
26
|
+
return all_cmd_processes[
|
|
27
|
+
(all_cmd_processes['total_info'].str.contains(REAL_TIME_SCHEDULER_NAME, case=False, na=False))
|
|
28
|
+
| (all_cmd_processes['total_info'].str.contains(REAL_TIME_SCHEDULER_NAME, case=False, na=False))]
|
|
29
|
+
|
|
30
|
+
|
|
31
|
+
# 关闭实时行情任务
|
|
32
|
+
def real_time_sync_task_close():
|
|
33
|
+
all_cmd_processes = cmd_util.get_all_process()
|
|
34
|
+
if data_frame_util.is_empty(all_cmd_processes):
|
|
35
|
+
return False
|
|
36
|
+
all_cmd_processes_real_time_task = get_real_time_quotes_task(all_cmd_processes)
|
|
37
|
+
if data_frame_util.is_empty(all_cmd_processes_real_time_task):
|
|
38
|
+
return False
|
|
39
|
+
for match_task_one in all_cmd_processes_real_time_task.itertuples():
|
|
40
|
+
try:
|
|
41
|
+
processes_pid = match_task_one.process_pid
|
|
42
|
+
# 关闭当前进程
|
|
43
|
+
cmd_util.kill_process_by_pid(processes_pid)
|
|
44
|
+
except BaseException as e:
|
|
45
|
+
logger.error("关闭实时行情任务异常:{}", e)
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
# 重开定时任务同步
|
|
49
|
+
def real_time_sync_task_open():
|
|
50
|
+
all_cmd_processes = cmd_util.get_all_process()
|
|
51
|
+
if data_frame_util.is_empty(all_cmd_processes):
|
|
52
|
+
return False
|
|
53
|
+
all_cmd_processes_real_time_task = get_real_time_quotes_task(all_cmd_processes)
|
|
54
|
+
if data_frame_util.is_empty(all_cmd_processes_real_time_task):
|
|
55
|
+
# 重开定时任务
|
|
56
|
+
cmd_util.open_bat_file(REAL_TIME_TASK_NAME_PATH)
|
|
57
|
+
# 防止太快重开多个
|
|
58
|
+
time.sleep(3)
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
def query_data_exist(str_day):
|
|
62
|
+
col_name = db_name_constant.REAL_TIME_QUOTES_NOW + '_' + str_day
|
|
63
|
+
query = {'symbol': '000001'}
|
|
64
|
+
return mongodb_util.exist_data_query(col_name, query)
|
|
65
|
+
|
|
66
|
+
|
|
67
|
+
def exist_sync_task():
|
|
68
|
+
all_cmd_processes = cmd_util.get_all_process()
|
|
69
|
+
if data_frame_util.is_empty(all_cmd_processes):
|
|
70
|
+
return False
|
|
71
|
+
all_cmd_processes_real_time_task = get_real_time_quotes_task(all_cmd_processes)
|
|
72
|
+
if data_frame_util.is_empty(all_cmd_processes_real_time_task):
|
|
73
|
+
return False
|
|
74
|
+
else:
|
|
75
|
+
return True
|
|
76
|
+
|
|
77
|
+
|
|
78
|
+
def check_data_sync_task_status():
|
|
79
|
+
now_date = datetime.datetime.now()
|
|
80
|
+
str_day = now_date.strftime('%Y-%m-%d')
|
|
81
|
+
while True:
|
|
82
|
+
if bool(date_util.is_trade_time(now_date)):
|
|
83
|
+
if bool(1 - query_data_exist(str_day)) or bool(1 - exist_sync_task()):
|
|
84
|
+
real_time_sync_task_open()
|
|
85
|
+
time.sleep(2)
|
|
86
|
+
elif bool(date_util.is_no_trade_time(now_date)):
|
|
87
|
+
break
|
|
88
|
+
else:
|
|
89
|
+
time.sleep(5)
|
|
90
|
+
|
|
91
|
+
|
|
92
|
+
if __name__ == '__main__':
|
|
93
|
+
# check_data_sync_task_status()
|
|
94
|
+
d = query_data_exist('2025-03-27')
|
|
95
|
+
print(d)
|
|
96
|
+
s = exist_sync_task()
|
|
97
|
+
print(s)
|
|
@@ -71,6 +71,8 @@ mns_common/api/ths/zt/ths_stock_zt_pool_api.py
|
|
|
71
71
|
mns_common/api/ths/zt/ths_stock_zt_pool_v2_api.py
|
|
72
72
|
mns_common/api/us/__init__.py
|
|
73
73
|
mns_common/api/us/ths_us_company_info_api.py
|
|
74
|
+
mns_common/api/xueqiu/__init__.py
|
|
75
|
+
mns_common/api/xueqiu/xue_qiu_k_line_api.py
|
|
74
76
|
mns_common/component/__init__.py
|
|
75
77
|
mns_common/component/common_service_fun_api.py
|
|
76
78
|
mns_common/component/cache/__init__.py
|
|
@@ -115,6 +117,8 @@ mns_common/component/redis_msg/redis_msg_publish_service.py
|
|
|
115
117
|
mns_common/component/self_choose/__init__.py
|
|
116
118
|
mns_common/component/self_choose/black_list_service_api.py
|
|
117
119
|
mns_common/component/self_choose/self_choose_service_api.py
|
|
120
|
+
mns_common/component/task/__init__.py
|
|
121
|
+
mns_common/component/task/real_time_data_sync_check.py
|
|
118
122
|
mns_common/component/tfp/__init__.py
|
|
119
123
|
mns_common/component/tfp/stock_tfp_api.py
|
|
120
124
|
mns_common/component/trade_date/__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.3.5.4 → mns_common-1.3.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
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/common/kpl_common_field_constant.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.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/selection/kpl_selection_plate_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/kpl/symbol/kpl_real_time_quotes_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.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
|
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/company/ths_company_announce_api.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/company/ths_company_info_api.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/app/ths_concept_detail_app.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/app/ths_concept_index_app.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/web/ths_common_js_api.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/web/ths_company_info_web.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/web/ths_concept_detail_web.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/api/ths/concept/web/ths_concept_index_web.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/classify/symbol_classify_api.py
RENAMED
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/classify/symbol_classify_param.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.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
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/cookie/cookie_info_service.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.3.5.4 → mns_common-1.3.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.3.5.4 → mns_common-1.3.5.6}/mns_common/component/k_line/patterns/pattern_Enum.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.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
|
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.4 → mns_common-1.3.5.6}/mns_common/component/self_choose/black_list_service_api.py
RENAMED
|
File without changes
|
|
File without changes
|
{mns_common-1.3.5.4/mns_common/db/v2 → mns_common-1.3.5.6/mns_common/component/task}/__init__.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
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|