- runner: enable_cdp_mode 从硬编码 False 改为系统设置 cdp_enabled。服务器部署下爬虫接管已开启远程调试的 Chrome(默认 9222),复用其 profile 登录态;本机桌面默认仍为关,行为不变 - qrlogin: 新增 CDP 扫码登录。Chrome 在服务器上跑于 Xvfb,show_qrcode 依赖的 PIL 桌面看图程序不存在,二维码无处可显示;改为经 CDP 从页面取出二维码交给 WebUI 渲染。刻意复用 browser.contexts[0](新建 context 是无痕 profile,扫了也白扫),且绝不调用 browser.close()(会连带关掉操作者自己的 Chrome) - webui: 设置页新增扫码面板,替换原本跳到采集页看终端二维码的入口 - Dockerfile / .dockerignore / docker-compose.yml: 服务器部署。host 网络是必需而非图省事——容器里 127.0.0.1:9222 必须落到宿主机回环 - UPSTREAM.md: 补充 gitcode 镜像,用于 GitHub 大包传输必断时补历史
25 lines
776 B
YAML
25 lines
776 B
YAML
services:
|
|
mediacrawler:
|
|
build: .
|
|
image: mediacrawler:latest
|
|
container_name: mediacrawler
|
|
restart: unless-stopped
|
|
|
|
# host networking is a requirement, not a convenience: the crawler attaches
|
|
# to the operator's Chrome at 127.0.0.1:9222, and inside a bridge network
|
|
# that loopback is the container's own, where no browser is listening.
|
|
# It also puts the app port directly on the host, so `ports:` is not used.
|
|
network_mode: host
|
|
|
|
env_file:
|
|
- .env
|
|
environment:
|
|
MC_HOST: 0.0.0.0
|
|
MC_PORT: "18051"
|
|
TZ: Asia/Shanghai
|
|
|
|
volumes:
|
|
# Per-run crawler output, read back by the monitor layer. Without this the
|
|
# data would live inside the container and vanish on every rebuild.
|
|
- ./data:/app/data
|