<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Xianyu Monitor on Producthunt daily</title>
        <link>https://producthunt.programnotes.cn/en/tags/xianyu-monitor/</link>
        <description>Recent content in Xianyu Monitor on Producthunt daily</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>en</language>
        <lastBuildDate>Thu, 05 Nov 2026 23:29:07 +0800</lastBuildDate><atom:link href="https://producthunt.programnotes.cn/en/tags/xianyu-monitor/index.xml" rel="self" type="application/rss+xml" /><item>
        <title>ai-goofish-monitor</title>
        <link>https://producthunt.programnotes.cn/en/p/ai-goofish-monitor/</link>
        <pubDate>Thu, 05 Nov 2026 23:29:07 +0800</pubDate>
        
        <guid>https://producthunt.programnotes.cn/en/p/ai-goofish-monitor/</guid>
        <description>&lt;img src="https://images.unsplash.com/photo-1714823034882-e3a63a33588d?ixid=M3w0NjAwMjJ8MHwxfHJhbmRvbXx8fHx8fHx8fDE3OTM4OTI0NDF8&amp;ixlib=rb-4.1.0" alt="Featured image of post ai-goofish-monitor" /&gt;&lt;h1 id=&#34;usagi-orgai-goofish-monitor&#34;&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/Usagi-org/ai-goofish-monitor&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Usagi-org/ai-goofish-monitor&lt;/a&gt;
&lt;/h1&gt;&lt;h1 id=&#34;闲鱼智能监控系统&#34;&gt;闲鱼智能监控系统
&lt;/h1&gt;&lt;p&gt;[中文] ｜ &lt;a class=&#34;link&#34; href=&#34;README_EN.md&#34; &gt;English&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;基于 Playwright 和 AI 的闲鱼多任务实时监控，提供完整的 Web 管理界面。&lt;/p&gt;
&lt;h2 id=&#34;核心特性&#34;&gt;核心特性
&lt;/h2&gt;&lt;ul&gt;
&lt;li&gt;&lt;strong&gt;Web 可视化管理&lt;/strong&gt;: 任务管理、账号管理、AI 标准编辑、运行日志、结果浏览&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;AI 驱动&lt;/strong&gt;: 自然语言创建任务，多模态模型深度分析商品&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;多任务并发&lt;/strong&gt;: 独立配置关键词、价格、筛选条件和 AI Prompt&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;高级筛选&lt;/strong&gt;: 包邮、新发布时间范围、省/市/区三级区域筛选&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;即时通知&lt;/strong&gt;: 支持 ntfy.sh、企业微信、Bark、Telegram、Webhook等多渠道&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;定时调度&lt;/strong&gt;: 支持 Cron 配置周期性任务&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;账号与代理轮换&lt;/strong&gt;: 多账号管理、任务绑定账号、代理池轮换与失败重试&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Docker 部署&lt;/strong&gt;: 一键容器化部署&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;截图&#34;&gt;截图
&lt;/h2&gt;&lt;p&gt;&lt;img src=&#34;https://producthunt.programnotes.cn/static/img.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;监控概览&#34;
	
	
&gt;
&lt;img src=&#34;https://producthunt.programnotes.cn/static/img_1.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;任务管理&#34;
	
	
&gt;
&lt;img src=&#34;https://producthunt.programnotes.cn/static/img_2.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;结果查看&#34;
	
	
&gt;
&lt;img src=&#34;https://producthunt.programnotes.cn/static/img_3.png&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;通知推送&#34;
	
	
&gt;&lt;/p&gt;
&lt;h2 id=&#34;-docker-部署推荐&#34;&gt;🐳 Docker 部署（推荐）
&lt;/h2&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/Usagi-org/ai-goofish-monitor &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; &lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ai-goofish-monitor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;vim .env &lt;span class=&#34;c1&#34;&gt;# 填写相关配置项&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose logs -f app
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose down
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;如果镜像无法访问或下载速度慢，可尝试使用加速：&lt;/p&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker pull ghcr.nju.edu.cn/usagi-org/ai-goofish:latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker tag ghcr.nju.edu.cn/usagi-org/ai-goofish:latest ghcr.io/usagi-org/ai-goofish:latest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;docker compose up -d
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;默认 Web UI 地址：&lt;code&gt;http://127.0.0.1:8000&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Docker 镜像已内置 Chromium，无需宿主机额外安装浏览器。&lt;/li&gt;
&lt;li&gt;官方镜像地址：&lt;code&gt;ghcr.io/usagi-org/ai-goofish:latest&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;更新镜像：&lt;code&gt;docker compose pull &amp;amp;&amp;amp; docker compose up -d&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;如果你修改了 &lt;code&gt;.env&lt;/code&gt; 中的 &lt;code&gt;SERVER_PORT&lt;/code&gt;，请同步更新 &lt;code&gt;docker-compose.yaml&lt;/code&gt; 里的端口映射。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;docker-compose.yaml&lt;/code&gt; 默认会把 SQLite 主库挂载到 &lt;code&gt;./data:/app/data&lt;/code&gt;，数据库文件默认为 &lt;code&gt;data/app.sqlite3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;目前默认持久化这些目录：
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;data/&lt;/code&gt;  SQLite 主存储（任务、结果、价格历史）&lt;/li&gt;
&lt;li&gt;&lt;code&gt;state/&lt;/code&gt;  登录状态 cookie 文件&lt;/li&gt;
&lt;li&gt;&lt;code&gt;prompts/&lt;/code&gt;  任务提示词&lt;/li&gt;
&lt;li&gt;&lt;code&gt;logs/&lt;/code&gt;  运行日志&lt;/li&gt;
&lt;li&gt;&lt;code&gt;images/&lt;/code&gt;  商品图片与任务临时图片目录&lt;/li&gt;
&lt;li&gt;&lt;code&gt;config.json&lt;/code&gt;、&lt;code&gt;jsonl/&lt;/code&gt;、&lt;code&gt;price_history/&lt;/code&gt;  首次升级到 SQLite 时用于兼容导入的旧数据源&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;数据存储与迁移&#34;&gt;数据存储与迁移
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;当前在线主存储为 SQLite，默认路径 &lt;code&gt;data/app.sqlite3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;可通过环境变量 &lt;code&gt;APP_DATABASE_FILE&lt;/code&gt; 自定义数据库路径；Docker 默认设置为 &lt;code&gt;/app/data/app.sqlite3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;应用启动时会自动建库建表，并尝试从旧的 &lt;code&gt;config.json&lt;/code&gt;、&lt;code&gt;jsonl/&lt;/code&gt;、&lt;code&gt;price_history/&lt;/code&gt; 导入一次历史数据&lt;/li&gt;
&lt;li&gt;&lt;code&gt;state/&lt;/code&gt;、&lt;code&gt;prompts/&lt;/code&gt;、&lt;code&gt;logs/&lt;/code&gt;、&lt;code&gt;images/&lt;/code&gt; 仍然是文件系统目录，不在 SQLite 中&lt;/li&gt;
&lt;li&gt;商品图片会临时落到 &lt;code&gt;images/task_images_&amp;lt;task_name&amp;gt;/&lt;/code&gt;，任务结束后默认会清理&lt;/li&gt;
&lt;li&gt;首次升级完成并确认 &lt;code&gt;data/app.sqlite3&lt;/code&gt; 中数据正确后，可视部署方式决定是否继续保留旧的 &lt;code&gt;config.json&lt;/code&gt;、&lt;code&gt;jsonl/&lt;/code&gt;、&lt;code&gt;price_history/&lt;/code&gt; 挂载&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;最少配置&#34;&gt;最少配置
&lt;/h3&gt;&lt;table&gt;
	&lt;thead&gt;
			&lt;tr&gt;
					&lt;th&gt;变量&lt;/th&gt;
					&lt;th&gt;说明&lt;/th&gt;
					&lt;th&gt;必填&lt;/th&gt;
			&lt;/tr&gt;
	&lt;/thead&gt;
	&lt;tbody&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;OPENAI_API_KEY&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;AI 模型 API Key&lt;/td&gt;
					&lt;td&gt;是&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;OPENAI_BASE_URL&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;OpenAI 兼容接口地址&lt;/td&gt;
					&lt;td&gt;是&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;OPENAI_MODEL_NAME&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;支持图片输入的模型名称&lt;/td&gt;
					&lt;td&gt;是&lt;/td&gt;
			&lt;/tr&gt;
			&lt;tr&gt;
					&lt;td&gt;&lt;code&gt;WEB_USERNAME&lt;/code&gt; / &lt;code&gt;WEB_PASSWORD&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;Web UI 登录账号密码，默认 &lt;code&gt;admin/admin123&lt;/code&gt;&lt;/td&gt;
					&lt;td&gt;否&lt;/td&gt;
			&lt;/tr&gt;
	&lt;/tbody&gt;
&lt;/table&gt;
&lt;p&gt;其余配置见下方“配置说明”。&lt;/p&gt;
&lt;h3 id=&#34;第一次使用&#34;&gt;第一次使用
&lt;/h3&gt;&lt;ol&gt;
&lt;li&gt;打开默认 Web UI &lt;code&gt;http://127.0.0.1:8000&lt;/code&gt; 并登录。&lt;/li&gt;
&lt;li&gt;进入“闲鱼账号管理”，使用 &lt;a class=&#34;link&#34; href=&#34;https://chromewebstore.google.com/detail/xianyu-login-state-extrac/eidlpfjiodpigmfcahkmlenhppfklcoa&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;Chrome 扩展&lt;/a&gt; 导出并粘贴闲鱼登录态 JSON。&lt;/li&gt;
&lt;li&gt;登录态文件会保存到 &lt;code&gt;state/&lt;/code&gt; 目录，例如 &lt;code&gt;state/acc_1.json&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;回到“任务管理”，创建任务并绑定账号后即可运行。&lt;/li&gt;
&lt;/ol&gt;
&lt;h3 id=&#34;创建第一个任务&#34;&gt;创建第一个任务
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;AI判断&lt;/code&gt;：填写“详细需求”，提交后会弹出独立进度弹窗，后台异步生成分析标准。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;关键词判断&lt;/code&gt;：填写关键词规则，任务会直接创建，不经过 AI 生成流程。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;区域筛选&lt;/code&gt;：已改为省 / 市 / 区三级选择器，数据基于闲鱼页面抓取快照内置。&lt;/li&gt;
&lt;/ul&gt;
&lt;h2 id=&#34;用户使用说明&#34;&gt;用户使用说明
&lt;/h2&gt;&lt;details&gt;
&lt;summary&gt;点击展开 Web UI 功能说明&lt;/summary&gt;
&lt;h3 id=&#34;任务管理&#34;&gt;任务管理
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;支持 AI 创建、关键词规则、价格范围、新发布范围、区域筛选、账号绑定、定时规则。&lt;/li&gt;
&lt;li&gt;AI 任务创建是后台 job 流程，提交后会打开单独的进度弹窗。&lt;/li&gt;
&lt;li&gt;区域筛选会显著缩小结果集，默认留空。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;账号管理&#34;&gt;账号管理
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;支持导入、更新、删除闲鱼账号登录态。&lt;/li&gt;
&lt;li&gt;每个任务可指定账号，也可不绑定并交给系统自动选择。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;结果查看与运行日志&#34;&gt;结果查看与运行日志
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;结果页和导出功能现在从 SQLite 查询，不再直接扫描 &lt;code&gt;jsonl&lt;/code&gt; 文件。&lt;/li&gt;
&lt;li&gt;日志页按任务展示运行过程，便于排查登录态失效、风控和 AI 调用问题。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;系统设置&#34;&gt;系统设置
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;可查看系统状态、编辑 Prompt、调整代理与轮换相关配置。&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&#34;开发者开发&#34;&gt;开发者开发
&lt;/h2&gt;&lt;h3 id=&#34;环境要求&#34;&gt;环境要求
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;Python 3.10+&lt;/li&gt;
&lt;li&gt;Node.js + npm（本地验证 &lt;code&gt;Node v20.18.3&lt;/code&gt; 可完成前端构建）&lt;/li&gt;
&lt;li&gt;Playwright CLI 与 Chromium，首次运行前建议执行 &lt;code&gt;python3 -m pip install playwright &amp;amp;&amp;amp; python3 -m playwright install chromium&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Chrome / Edge 浏览器（Linux 环境也可使用 Chromium；&lt;code&gt;start.sh&lt;/code&gt; 会先检查浏览器是否存在）&lt;/li&gt;
&lt;/ul&gt;
&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://github.com/Usagi-org/ai-goofish-monitor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; ai-goofish-monitor
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cp .env.example .env
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;一键启动&#34;&gt;一键启动
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;chmod +x start.sh
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;./start.sh
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;p&gt;&lt;code&gt;start.sh&lt;/code&gt; 会先检查 Playwright CLI 和浏览器前置条件；在前置条件满足后自动安装项目依赖、构建前端、复制构建产物并启动后端。&lt;/p&gt;
&lt;h3 id=&#34;手动启动&#34;&gt;手动启动
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;3
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;4
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;5
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;6
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;7
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;8
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;9
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 后端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;python -m src.app
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 或&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;uvicorn src.app:app --host 0.0.0.0 --port &lt;span class=&#34;m&#34;&gt;8000&lt;/span&gt; --reload
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# 前端&lt;/span&gt;
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; web-ui
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm install
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;npm run dev
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;ul&gt;
&lt;li&gt;FastAPI 启动时会自动初始化 SQLite，并在首次启动时尝试导入旧的 &lt;code&gt;config.json/jsonl/price_history&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;spider_v2.py&lt;/code&gt; 默认从 SQLite 读取任务；只有显式传入 &lt;code&gt;--config &amp;lt;path&amp;gt;&lt;/code&gt; 时才会走 JSON 配置兼容模式&lt;/li&gt;
&lt;li&gt;默认数据库路径为 &lt;code&gt;data/app.sqlite3&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;Vite 开发服务器会将 &lt;code&gt;/api&lt;/code&gt;、&lt;code&gt;/auth&lt;/code&gt;、&lt;code&gt;/ws&lt;/code&gt; 代理到 &lt;code&gt;http://127.0.0.1:8000&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;npm run build&lt;/code&gt; 先生成 &lt;code&gt;web-ui/dist/&lt;/code&gt;，&lt;code&gt;start.sh&lt;/code&gt; 再复制到仓库根目录 &lt;code&gt;dist/&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;FastAPI 负责提供根目录 &lt;code&gt;dist/index.html&lt;/code&gt; 和 &lt;code&gt;dist/assets/&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;./start.sh&lt;/code&gt; 默认输出访问地址 &lt;code&gt;http://localhost:8000&lt;/code&gt; 和 API 文档 &lt;code&gt;http://localhost:8000/docs&lt;/code&gt;。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;测试与校验&#34;&gt;测试与校验
&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;div class=&#34;chroma&#34;&gt;
&lt;table class=&#34;lntable&#34;&gt;&lt;tr&gt;&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code&gt;&lt;span class=&#34;lnt&#34;&gt;1
&lt;/span&gt;&lt;span class=&#34;lnt&#34;&gt;2
&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;
&lt;td class=&#34;lntd&#34;&gt;
&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;PYTEST_DISABLE_PLUGIN_AUTOLOAD&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; pytest
&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; web-ui &lt;span class=&#34;o&#34;&gt;&amp;amp;&amp;amp;&lt;/span&gt; npm run build
&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;
&lt;/div&gt;
&lt;/div&gt;&lt;h3 id=&#34;任务创建-api&#34;&gt;任务创建 API
&lt;/h3&gt;&lt;details&gt;
&lt;summary&gt;点击展开 API 行为说明&lt;/summary&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;POST /api/tasks/generate&lt;/code&gt;
&lt;ul&gt;
&lt;li&gt;&lt;code&gt;decision_mode=ai&lt;/code&gt;：返回 &lt;code&gt;202&lt;/code&gt; 和 &lt;code&gt;job&lt;/code&gt;，需要继续轮询进度。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;decision_mode=keyword&lt;/code&gt;：直接返回已创建任务。&lt;/li&gt;
&lt;/ul&gt;
&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GET /api/tasks/generate-jobs/{job_id}&lt;/code&gt;：查询 AI 任务生成进度。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;POST /auth/status&lt;/code&gt;：校验 Web UI 登录凭据。&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&#34;配置说明&#34;&gt;配置说明
&lt;/h2&gt;&lt;details&gt;
&lt;summary&gt;点击展开常用配置项&lt;/summary&gt;
&lt;h3 id=&#34;ai-与运行时&#34;&gt;AI 与运行时
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;OPENAI_API_KEY&lt;/code&gt; / &lt;code&gt;OPENAI_BASE_URL&lt;/code&gt; / &lt;code&gt;OPENAI_MODEL_NAME&lt;/code&gt;：AI 模型接入必填项。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PROXY_URL&lt;/code&gt;：为 AI 请求单独指定 HTTP/SOCKS5 代理。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;RUN_HEADLESS&lt;/code&gt;：是否以无头模式运行爬虫；Docker 中应保持 &lt;code&gt;true&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;SERVER_PORT&lt;/code&gt;：后端监听端口，默认 &lt;code&gt;8000&lt;/code&gt;。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;LOGIN_IS_EDGE&lt;/code&gt;：本地环境可切换为 Edge 内核；Docker 镜像未内置 Edge，容器内会固定使用 Chromium。&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PCURL_TO_MOBILE&lt;/code&gt;：是否将 PC 商品链接转换为移动端链接。&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;通知&#34;&gt;通知
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;NTFY_TOPIC_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;GOTIFY_URL&lt;/code&gt; / &lt;code&gt;GOTIFY_TOKEN&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;BARK_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WX_BOT_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TELEGRAM_BOT_TOKEN&lt;/code&gt; / &lt;code&gt;TELEGRAM_CHAT_ID&lt;/code&gt; / &lt;code&gt;TELEGRAM_API_BASE_URL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;WEBHOOK_*&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;h3 id=&#34;代理轮换与失败保护&#34;&gt;代理轮换与失败保护
&lt;/h3&gt;&lt;ul&gt;
&lt;li&gt;&lt;code&gt;PROXY_ROTATION_ENABLED&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PROXY_ROTATION_MODE&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PROXY_POOL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PROXY_ROTATION_RETRY_LIMIT&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;PROXY_BLACKLIST_TTL&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TASK_FAILURE_THRESHOLD&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TASK_FAILURE_PAUSE_SECONDS&lt;/code&gt;&lt;/li&gt;
&lt;li&gt;&lt;code&gt;TASK_FAILURE_GUARD_PATH&lt;/code&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;完整示例见 &lt;code&gt;.env.example&lt;/code&gt;。&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id=&#34;web-界面认证&#34;&gt;Web 界面认证
&lt;/h2&gt;&lt;details&gt;
&lt;summary&gt;点击展开认证说明&lt;/summary&gt;
&lt;ul&gt;
&lt;li&gt;Web UI 当前使用登录页收集账号密码，并通过 &lt;code&gt;POST /auth/status&lt;/code&gt; 校验。&lt;/li&gt;
&lt;li&gt;登录成功后，前端会在浏览器本地保存登录状态，用于路由守卫和 WebSocket 初始化。&lt;/li&gt;
&lt;li&gt;默认账号密码为 &lt;code&gt;admin/admin123&lt;/code&gt;，生产环境请务必修改。&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&#34;-工作流程&#34;&gt;🚀 工作流程
&lt;/h2&gt;&lt;p&gt;下图描述了单个监控任务从启动到完成的核心处理逻辑。主服务运行于 &lt;code&gt;src.app&lt;/code&gt;，按用户操作或定时调度启动一个或多个任务进程。&lt;/p&gt;
&lt;pre class=&#34;mermaid&#34;&gt;
  graph TD
    A[启动监控任务] --&amp;gt; B[选择账号/代理配置];
    B --&amp;gt; C[任务: 搜索商品];
    C --&amp;gt; D{发现新商品?};
    D -- 是 --&amp;gt; E[抓取商品详情 &amp;amp; 卖家信息];
    E --&amp;gt; F[下载商品图片];
    F --&amp;gt; G[调用AI进行分析];
    G --&amp;gt; H{AI是否推荐?};
    H -- 是 --&amp;gt; I[发送通知];
    H -- 否 --&amp;gt; J[保存记录到 SQLite];
    I --&amp;gt; J;
    D -- 否 --&amp;gt; K[翻页/等待];
    K --&amp;gt; C;
    J --&amp;gt; C;
    C --&amp;gt; L{触发风控/异常?};
    L -- 是 --&amp;gt; M[账号/代理轮换并重试];
    M --&amp;gt; C;
&lt;/pre&gt;

&lt;h2 id=&#34;常见问题&#34;&gt;常见问题
&lt;/h2&gt;&lt;details&gt;
&lt;summary&gt;点击展开常见问题&lt;/summary&gt;
&lt;h3 id=&#34;ai-任务创建为什么不是立即完成&#34;&gt;AI 任务创建为什么不是立即完成？
&lt;/h3&gt;&lt;p&gt;AI 模式会先生成分析标准，再创建任务。现在该流程已改为后台 job，提交后会显示独立进度弹窗，避免表单长时间卡住。&lt;/p&gt;
&lt;h3 id=&#34;区域筛选为什么默认建议留空&#34;&gt;区域筛选为什么默认建议留空？
&lt;/h3&gt;&lt;p&gt;区域筛选会显著减少搜索结果，适合明确只看某个区域的场景。若你先验证整体市场，建议先不填。&lt;/p&gt;
&lt;h3 id=&#34;本地页面打开后提示前端构建产物不存在&#34;&gt;本地页面打开后提示前端构建产物不存在？
&lt;/h3&gt;&lt;p&gt;说明根目录 &lt;code&gt;dist/&lt;/code&gt; 缺失。可直接执行 &lt;code&gt;./start.sh&lt;/code&gt;，或先在 &lt;code&gt;web-ui/&lt;/code&gt; 里执行 &lt;code&gt;npm run build&lt;/code&gt;，再确认构建产物已复制到仓库根目录。&lt;/p&gt;
&lt;h3 id=&#34;startsh-为什么提示缺少-playwright-或浏览器&#34;&gt;&lt;code&gt;./start.sh&lt;/code&gt; 为什么提示缺少 Playwright 或浏览器？
&lt;/h3&gt;&lt;p&gt;这是脚本的前置检查。请先安装 Playwright CLI 与 Chromium，并确保系统中可用 Chrome / Edge（Linux 环境也可用 Chromium），然后重新执行 &lt;code&gt;./start.sh&lt;/code&gt;。&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id=&#34;致谢&#34;&gt;致谢
&lt;/h2&gt;&lt;details&gt;
&lt;summary&gt;点击展开致谢内容&lt;/summary&gt;
&lt;p&gt;本项目在开发过程中参考了以下优秀项目，特此感谢：&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/superboyyy/xianyu_spider&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;superboyyy/xianyu_spider&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以及感谢LinuxDo相关人员的脚本贡献&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://linux.do/u/jooooody/summary&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;@jooooody&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;以及感谢 &lt;a class=&#34;link&#34; href=&#34;https://linux.do/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;LinuxDo&lt;/a&gt; 社区。&lt;/p&gt;
&lt;p&gt;以及感谢 ClaudeCode/Gemini/Codex 等模型工具，解放双手 体验Vibe Coding的快乐。&lt;/p&gt;
&lt;/details&gt;
&lt;h2 id=&#34;注意事项&#34;&gt;注意事项
&lt;/h2&gt;&lt;details&gt;
&lt;summary&gt;点击展开注意事项详情&lt;/summary&gt;
&lt;ul&gt;
&lt;li&gt;请遵守闲鱼的用户协议和robots.txt规则，不要进行过于频繁的请求，以免对服务器造成负担或导致账号被限制。&lt;/li&gt;
&lt;li&gt;本项目仅供学习和技术研究使用，请勿用于非法用途。&lt;/li&gt;
&lt;li&gt;本项目采用 &lt;a class=&#34;link&#34; href=&#34;LICENSE&#34; &gt;MIT 许可证&lt;/a&gt; 发布，按&amp;quot;现状&amp;quot;提供，不提供任何形式的担保。&lt;/li&gt;
&lt;li&gt;项目作者及贡献者不对因使用本软件而导致的任何直接、间接、附带或特殊的损害或损失承担责任。&lt;/li&gt;
&lt;li&gt;如需了解更多详细信息，请查看 &lt;a class=&#34;link&#34; href=&#34;DISCLAIMER.md&#34; &gt;免责声明&lt;/a&gt; 文件。&lt;/li&gt;
&lt;/ul&gt;
&lt;/details&gt;
&lt;h2 id=&#34;star-history&#34;&gt;Star History
&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://www.star-history.com/#Usagi-org/ai-goofish-monitor&amp;amp;Date&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;
    &gt;&lt;img src=&#34;https://api.star-history.com/svg?repos=Usagi-org/ai-goofish-monitor&amp;amp;type=Date&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Star History Chart&#34;
	
	
&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;&lt;img src=&#34;https://repobeats.axiom.co/api/embed/b40d8a112271b4bddabadd8fe2635be3c1aa28a3.svg&#34;
	
	
	
	loading=&#34;lazy&#34;
	
		alt=&#34;Alt&#34;
	
	
&gt;&lt;/p&gt;
</description>
        </item>
        
    </channel>
</rss>
