This commit is contained in:
mzl
2026-01-12 14:59:27 +08:00
parent c32cda9704
commit e64adfe628
4 changed files with 1167 additions and 31 deletions
+131 -3
View File
@@ -3,14 +3,14 @@
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>小红书数据采集器</title>
<title>XHS数据采集器</title>
<link rel="stylesheet" href="/static/style.css">
</head>
<body>
<div class="container">
<!-- 顶部标题栏 -->
<header class="header">
<h1>小红书数据采集器</h1>
<h1>XHS数据采集器</h1>
<button class="theme-toggle" id="themeToggle" title="切换主题">
<span id="themeIcon">🌙</span>
</button>
@@ -18,6 +18,7 @@
<!-- 控制面板 -->
<section class="control-panel">
<!-- 第一行:主要控制按钮 -->
<div class="control-group">
<button class="btn btn-primary" id="startBtn">
<span class="btn-icon">▶</span> 启动采集
@@ -33,6 +34,7 @@
</button>
</div>
<!-- 第二行:模式和线程控制 -->
<div class="control-group">
<label class="radio-group">
<span class="label-text">模式:</span>
@@ -60,6 +62,25 @@
</select>
</div>
</div>
<!-- 第三行:账号管理 -->
<div class="control-group">
<div class="account-section">
<span class="label-text">账号管理:</span>
<div class="account-controls">
<button class="btn btn-secondary btn-small" id="addAccountBtn">
<span class="btn-icon">➕</span> 添加账号
</button>
<button class="btn btn-secondary btn-small" id="refreshAccountsBtn">
<span class="btn-icon">🔄</span> 刷新
</button>
<span class="account-status" id="accountStatus">
<span class="status-indicator" id="loginStatusIndicator"></span>
<span id="loginStatusText">未登录</span>
</span>
</div>
</div>
</div>
</section>
<!-- 进度概览 -->
@@ -157,7 +178,114 @@
<img id="screenshotImage" src="" alt="错误截图">
</div>
</section>
</div>
<!-- 账号管理模态框 -->
<div class="modal" id="accountModal">
<div class="modal-content">
<div class="modal-header">
<h3>账号管理</h3>
<button class="modal-close" id="closeAccountModal">&times;</button>
</div>
<div class="modal-body">
<!-- 登录状态 -->
<div class="login-status-section">
<h4>登录状态</h4>
<div class="login-info" id="loginInfo">
<div class="login-status-item">
<span class="status-label">状态:</span>
<span class="status-value" id="modalLoginStatus">未登录</span>
</div>
<div class="login-status-item">
<span class="status-label">登录时间:</span>
<span class="status-value" id="loginTime">-</span>
</div>
</div>
<div class="login-actions">
<button class="btn btn-primary" id="loginBtn">
<span class="btn-icon">🔐</span> 登录小红书
</button>
<button class="btn btn-danger" id="logoutBtn">
<span class="btn-icon">🚪</span> 退出登录
</button>
</div>
</div>
<!-- 用户管理 -->
<div class="users-management-section">
<h4>用户列表管理</h4>
<div class="user-input-group">
<input type="text" id="newUserIdInput" placeholder="输入用户 ID" class="input-medium">
<button class="btn btn-primary btn-small" id="addUserIdBtn">
<span class="btn-icon">➕</span> 添加
</button>
</div>
<div class="user-tips">
<p class="hint">• 用户 ID 格式:5ef74296000000000100003a</p>
<p class="hint">• 每行一个用户 ID</p>
<p class="hint">• 支持从 data/users.txt 批量导入</p>
</div>
<div class="users-list-container">
<div class="users-list-header">
<span>已添加的用户 (<span id="modalUserCount">0</span>)</span>
<button class="btn btn-secondary btn-small" id="clearAllUsersBtn">
<span class="btn-icon">🗑</span> 清空全部
</button>
</div>
<div class="users-list" id="modalUserList">
<!-- 用户列表将在这里显示 -->
</div>
</div>
</div>
<!-- 批量导入 -->
<div class="batch-import-section">
<h4>批量导入</h4>
<div class="batch-import-controls">
<button class="btn btn-secondary" id="importFromTxtBtn">
<span class="btn-icon">📁</span> 从 users.txt 导入
</button>
<button class="btn btn-secondary" id="exportToTxtBtn">
<span class="btn-icon">💾</span> 导出到 users.txt
</button>
</div>
</div>
</div>
</div>
</div>
<!-- 登录二维码模态框 -->
<div class="modal" id="loginQrModal">
<div class="modal-content">
<div class="modal-header">
<h3>扫码登录小红书</h3>
<button class="modal-close" id="closeLoginQrModal">&times;</button>
</div>
<div class="modal-body">
<div class="qr-login-container">
<div class="qr-code-section">
<div id="qrcodeContainer">
<!-- 二维码将在这里显示 -->
</div>
<p class="qr-tips">请使用小红书App扫描二维码登录</p>
</div>
<div class="login-status-section">
<h4>登录状态</h4>
<div class="login-status-item">
<span class="status-label">状态:</span>
<span class="status-value" id="qrLoginStatus">等待扫码...</span>
</div>
<div class="login-status-item">
<span class="status-label">二维码过期时间:</span>
<span class="status-value" id="qrExpireTime">120秒</span>
</div>
</div>
</div>
</div>
</div>
</div>
<!-- 浮动提示 -->
<div class="toast" id="toast"></div>
<script src="/static/app.js"></script>
</body>