diff --git a/.env b/.env
index 4a5e01d..03f5ece 100644
--- a/.env
+++ b/.env
@@ -3,7 +3,7 @@
# Web 服务配置
HOST=0.0.0.0
-PORT=18080
+PORT=18085
# 浏览器配置
HEADLESS=false
diff --git a/.env.example b/.env.example
index 4a5e01d..03f5ece 100644
--- a/.env.example
+++ b/.env.example
@@ -3,7 +3,7 @@
# Web 服务配置
HOST=0.0.0.0
-PORT=18080
+PORT=18085
# 浏览器配置
HEADLESS=false
diff --git a/Dockerfile b/Dockerfile
index 7f29e22..d8cb576 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -50,11 +50,11 @@ COPY . .
RUN mkdir -p /app/data /app/data/screenshots
# 暴露端口
-EXPOSE 18080
+EXPOSE 18085
# 设置环境变量
ENV HOST=0.0.0.0
-ENV PORT=18080
+ENV PORT=18085
ENV HEADLESS=false
ENV SCREENSHOT_ON_ERROR=true
diff --git a/README.md b/README.md
index 5e50030..91e7c8e 100644
--- a/README.md
+++ b/README.md
@@ -63,7 +63,7 @@ playwright install chromium
python main.py
```
-服务将在 `http://localhost:18080` 启动。
+服务将在 `http://localhost:18085` 启动。
### 2. 添加用户 ID
@@ -100,7 +100,7 @@ python main.py
```env
HOST=0.0.0.0
-PORT=18080
+PORT=18085
HEADLESS=false
SCREENSHOT_ON_ERROR=true
MAX_THREADS=5
@@ -180,7 +180,7 @@ docker build -t xiaohongshu-scraper .
```bash
# 本地开发模式(可以看到浏览器窗口)
docker run -d \
- -p 18080:18080 \
+ -p 18085:18085 \
-v $(pwd)/data:/app/data \
-e HEADLESS=false \
--name xiaohongshu-scraper \
@@ -188,7 +188,7 @@ docker run -d \
# 云服务器模式(无头模式)
docker run -d \
- -p 18080:18080 \
+ -p 18085:18085 \
-v $(pwd)/data:/app/data \
-e HEADLESS=true \
--name xiaohongshu-scraper \
@@ -219,7 +219,7 @@ docker exec -it xiaohongshu-scraper bash
| 变量 | 默认值 | 说明 |
|------|--------|------|
| HOST | 0.0.0.0 | 监听地址 |
-| PORT | 18080 | 监听端口(范围 10000-50000)|
+| PORT | 18085 | 监听端口(范围 10000-50000)|
| HEADLESS | false | 是否无头模式(云服务器设为 true)|
| SCREENSHOT_ON_ERROR | true | 错误时截图 |
| MAX_THREADS | 5 | 最大线程数 |
@@ -266,10 +266,10 @@ environment:
```bash
# 检查 Git 状态
-curl http://your-server:18080/api/git/status
+curl http://your-server:18085/api/git/status
# 拉取最新代码
-curl -X POST http://your-server:18080/api/git/pull
+curl -X POST http://your-server:18085/api/git/pull
```
#### 4. 重启容器
diff --git a/app/config.py b/app/config.py
index 7eb1226..9e70930 100644
--- a/app/config.py
+++ b/app/config.py
@@ -82,7 +82,7 @@ MAX_LOGS = 10000 # 最大日志条数
# ========== Web 配置 ==========
WEB_HOST = os.getenv("HOST", "0.0.0.0")
-WEB_PORT = int(os.getenv("PORT", "18080")) # 默认端口 18080,范围 10000-50000
+WEB_PORT = int(os.getenv("PORT", "18085")) # 默认端口 18085,范围 10000-50000
SCREENSHOT_ON_ERROR = os.getenv("SCREENSHOT_ON_ERROR", "true").lower() == "true"
# ========== Git 更新配置 ==========
diff --git a/app/web.py b/app/web.py
index a2da283..ddcdecb 100644
--- a/app/web.py
+++ b/app/web.py
@@ -15,6 +15,7 @@ from fastapi.templating import Jinja2Templates
from fastapi.requests import Request
from pydantic import BaseModel
from typing import List as ListType
+from fastapi.middleware.cors import CORSMiddleware
from app import config
from app.log_manager import get_log_manager
@@ -61,6 +62,16 @@ log_manager = get_log_manager()
# ========== FastAPI 应用 ==========
app = FastAPI(title="小红书数据采集器", version="1.0.0")
+# 添加 CORS 中间件
+app.add_middleware(
+ CORSMiddleware,
+ allow_origins=["*"], # 生产环境应该指定具体域名
+ allow_credentials=True,
+ allow_methods=["*"],
+ allow_headers=["*"],
+ expose_headers=["*"]
+)
+
# 挂载静态文件和模板
app.mount("/static", StaticFiles(directory="static"), name="static")
templates = Jinja2Templates(directory="templates")
diff --git a/docker-compose.yml b/docker-compose.yml
index 740880c..7735101 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -5,13 +5,13 @@ services:
build: .
container_name: xiaohongshu-scraper
ports:
- - "18085:18080" # 外部端口18081映射到容器内部18080
+ - "18085:18085" # 外部端口18085映射到容器内部18085
volumes:
# 持久化数据目录(采集结果、日志、登录状态)
- ./data:/app/data
environment:
- HOST=0.0.0.0
- - PORT=18080
+ - PORT=18085
- HEADLESS=false
- SCREENSHOT_ON_ERROR=true
- MAX_THREADS=5
diff --git a/entrypoint.sh b/entrypoint.sh
index 152b85c..4eedc8f 100644
--- a/entrypoint.sh
+++ b/entrypoint.sh
@@ -56,7 +56,7 @@ else
fi
echo "启动 Web 服务..."
-echo "端口: ${PORT:-18080}"
+echo "端口: ${PORT:-18085}"
echo "无头模式: ${HEADLESS:-false}"
echo "================================"
diff --git a/static/app.js b/static/app.js
index de75a67..9777f6a 100644
--- a/static/app.js
+++ b/static/app.js
@@ -698,7 +698,9 @@ async function openLoginQrModal() {
elements.qrLoginStatus.textContent = '正在模拟登录...';
try {
- const response = await fetch('/api/login/qrcode');
+ const response = await fetch('/api/login/qrcode', {
+ method: 'POST'
+ });
const data = await response.json();
if (response.ok) {
diff --git a/templates/index.html b/templates/index.html
index 4b885b9..b647cc7 100644
--- a/templates/index.html
+++ b/templates/index.html
@@ -201,8 +201,8 @@
-