|
@@ -0,0 +1,104 @@
|
|
|
|
|
+# 药品数据采集系统
|
|
|
|
|
+
|
|
|
|
|
+多平台药品/商品数据采集系统,覆盖淘宝、京东、小红书、饿了么闪购、药房网。
|
|
|
|
|
+
|
|
|
|
|
+## 子项目
|
|
|
|
|
+
|
|
|
|
|
+```
|
|
|
|
|
+project/
|
|
|
|
|
+├── xhs/ # 小红书商品采集(Android + OCR + AI)
|
|
|
|
|
+├── tbsg/ # 饿了么闪购店铺采集(OCR + 滑块验证码)
|
|
|
|
|
+└── spides/ # 淘宝 / 京东 / 药房网爬虫
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+### 1. xhs — 小红书商品采集
|
|
|
|
|
+
|
|
|
|
|
+Android 自动化采集,uiautomator2 操控手机 + OCR 识别 + AI 分析页面,支持多设备多线程派单。
|
|
|
|
|
+
|
|
|
|
|
+**启动:**
|
|
|
|
|
+```bash
|
|
|
|
|
+cd xhs
|
|
|
|
|
+python start_run_xhs.py
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**核心流程:**
|
|
|
|
|
+- 从数据库/手动配置拉取任务(药品关键词)
|
|
|
|
|
+- ADB 检测空闲设备,状态锁防冲突
|
|
|
|
|
+- 每个设备独立线程:打开小红书 → 搜索 → 滚动商品列表 → OCR 截图 → AI 提取价格/标题 → 写入数据库
|
|
|
|
|
+- 飞书通知 + 调度中心 API 上报
|
|
|
|
|
+
|
|
|
|
|
+**依赖:** `xhs/requirements.txt`(主要:uiautomator2, opencv-python, easyocr, DBUtils)
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+### 2. tbsg — 饿了么闪购店铺采集
|
|
|
|
|
+
|
|
|
|
|
+步骤驱动,OCR + AI 实现端到端自动化:打开 App → 搜索商品 → 滚动店铺列表 → 进入店铺 → 解析二维码获取商品链接。
|
|
|
|
|
+
|
|
|
|
|
+**启动:**
|
|
|
|
|
+```bash
|
|
|
|
|
+cd tbsg
|
|
|
|
|
+python main.py
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**核心模块:**
|
|
|
|
|
+| 文件 | 作用 |
|
|
|
|
|
+|------|------|
|
|
|
|
|
+| `main.py` | 步骤编排(step1~step4) |
|
|
|
|
|
+| `steps/ocr.py` | OCR 识别封装 |
|
|
|
|
|
+| `steps/executor.py` | uiautomator2 安全执行器 |
|
|
|
|
|
+| `ai_helper.py` | DeepSeek AI 页面分类/坐标解析 |
|
|
|
|
|
+| `yzm/` | 滑块验证码/九宫格自动破解 |
|
|
|
|
|
+
|
|
|
|
|
+**验证码处理:** 模板匹配 + OCR 检测 → 自动调用滑块/九宫格破解,最多重试5次,失败等人工介入。
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+### 3. spides — 淘宝 / 京东 / 药房网爬虫
|
|
|
|
|
+
|
|
|
|
|
+**启动:**
|
|
|
|
|
+```bash
|
|
|
|
|
+# 淘宝
|
|
|
|
|
+cd spides
|
|
|
|
|
+python start_run_taobao.py
|
|
|
|
|
+
|
|
|
|
|
+# 京东
|
|
|
|
|
+python start_run_jd.py
|
|
|
|
|
+
|
|
|
|
|
+# 药房网
|
|
|
|
|
+python start_run_yaofangwang.py
|
|
|
|
|
+```
|
|
|
|
|
+
|
|
|
|
|
+**共用基础设施(`spides/commons/`):**
|
|
|
|
|
+| 模块 | 作用 |
|
|
|
|
|
+|------|------|
|
|
|
|
|
+| `collect_schedule_runner.py` | 通用调度循环 |
|
|
|
|
|
+| `scheduler.py` | 任务拉取 + 心跳 + 上报 |
|
|
|
|
|
+| `conn_mysql.py` | MySQL 连接池 |
|
|
|
|
|
+| `feishu_webhook.py` | 飞书通知 |
|
|
|
|
|
+| `config.py` | 设备 ID、账号配置 |
|
|
|
|
|
+
|
|
|
|
|
+**淘宝:** DrissionPage 浏览器自动化,搜索 → 翻页 → 提取商品列表
|
|
|
|
|
+**京东:** 浏览器自动化,API 拉取任务
|
|
|
|
|
+**药房网:** 固定任务列表循环
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 服务端依赖
|
|
|
|
|
+
|
|
|
|
|
+- MySQL 数据库 `drug_retrieve`(`120.24.26.308:3307`)
|
|
|
|
|
+- 调度中心 API(`scheduleapi.findit.ltd`)
|
|
|
|
|
+- 阿里云 OSS(`oss-cn-shenzhen`)
|
|
|
|
|
+- DeepSeek AI API(`ai-api.dfwy.tech`)
|
|
|
|
|
+- 飞书 Webhook
|
|
|
|
|
+
|
|
|
|
|
+---
|
|
|
|
|
+
|
|
|
|
|
+## 注意事项
|
|
|
|
|
+
|
|
|
|
|
+- 需要 Android 真机连接 ADB(小红书、饿了么)
|
|
|
|
|
+- 需要 Chrome 浏览器(淘宝 DrissionPage)
|
|
|
|
|
+- `spides/commons/config.py` 和 `xhs/spiders/xhs/xhs_config.py` 含敏感凭证,不要提交公开仓库
|
|
|
|
|
+- `xhs/spiders/xhs/main.py` 第78行数据库密码硬编码,建议改为环境变量
|