Files
datie-bom/browser_login/keep_alive.py
2026-04-27 15:23:00 +08:00

51 lines
2.0 KiB
Python

"""
ERP 浏览器保活服务 (手工填写账号密码专用)
运行此脚本后,在弹出的 Chrome 浏览器中手工登录。
登录成功后,不要关闭终端和浏览器。
其他抓取脚本(指定同一端口)就可以直接复用这个已经登录的浏览器实例了!
"""
import sys
import time
from pathlib import Path
# 引入现有的登录模块
sys.path.insert(0, str(Path(__file__).parent))
from login import get_page, login_manual, log
def main():
log("INFO", "=== 🚀 启动浏览器保活服务 (端口: 9222) ===")
# 统一使用 9222 端口,后续所有抓取脚本也连这个端口
page = get_page(port=9222)
try:
# 调用已有的手工登录逻辑:打开网页,等待用户手工操作
log("INFO", "等待您在弹出的浏览器中完成手工登录...")
# 这里的 login_manual 已经有轮询检测是否登录成功的逻辑了
ok = login_manual(page)
if ok:
log("OK", "✅ 登录成功!浏览器已进入保活状态。")
log("INFO", "==================================================")
log("INFO", "⚠️ 请勿关闭此终端窗口和弹出的 Chrome 浏览器!")
log("INFO", "👉 现在您可以新开一个终端,去运行其他的抓取脚本了。")
log("INFO", "🛑 如果要结束保活关闭浏览器,请在此终端按 Ctrl+C。")
log("INFO", "==================================================")
# 死循环保活,直到用户手动在终端按 Ctrl+C 退出
while True:
time.sleep(10)
else:
log("ERR", "❌ 登录超时或失败,保活服务即将退出。")
page.quit()
except KeyboardInterrupt:
log("INFO", "接收到退出信号 (Ctrl+C),正在关闭浏览器...")
page.quit()
except Exception as e:
log("ERR", f"发生异常: {e}")
page.quit()
if __name__ == "__main__":
main()