新内容
This commit is contained in:
51
browser_login/keep_alive.py
Normal file
51
browser_login/keep_alive.py
Normal file
@@ -0,0 +1,51 @@
|
||||
"""
|
||||
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()
|
||||
Reference in New Issue
Block a user