Docker 与 docker-compose
通过 Docker 在 Linux 和 MacOS 上安装 A-Parser 是推荐的方式,我们准备了一个镜像,其中包含了 A-Parser 和 Headless Chrome 运行所需的所有依赖项和库。
安装前准备
- 安装前需要在会员中心绑定 IP。
- 需要在系统中安装 Docker。
下载发行版
下载并解压 A-Parser 发行版:
curl -O https://a-parser.com/members/onetime/ce42f308eaa577b5/aparser-linux-x64.tar.gz
tar zxf aparser-linux-x64.tar.gz
rm -f aparser-linux-x64.tar.gz
通过适用于 Linux 的一次性链接进行下载。 您需要在会员中心的 A-Parser -> 下载 选项卡中获取该链接
通过 Docker 启动
在前台模式下启动
在前台模式下启动 A-Parser,以便在终端中查看日志:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground
选项 -foreground 会直接在终端输出日志文件内容:
Apr 27 07:06:53.10427 [master] foreground mode
Apr 27 07:06:54.06409 [master] Found local Chromium: /app/dist/nodejs/node_modules/puppeteer/.local-chromium/linux-856583/chrome-linux/chrome
Apr 27 07:06:55.36487 [master] NodeJS console: [Rank::CMS] total loaded 1446 apps
Apr 27 07:07:19.01377 [master] Start ProxyChecker nocheck
Apr 27 07:07:19.24418 [master] Start ProxyChecker default
Apr 27 07:07:19.62635 [master] A-Parser v1.2.1176-linux-x64 started, tasks: 0 / 2, memory total: 1989 MB, available: 610 MB
启动后,可以通过以下地址访问 A-Parser:http://127.0.0.1:9091
在后台启动
如需在后台运行容器,请使用以下命令:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser
Docker 启动时的线程优化
默认情况下,容器内部对打开的文件/套接字数量有限制。要在通过 Docker 启动时将限制增加到 10240,请使用 --ulimit 选项:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser
此外,建议在宿主机系统上执行针对多线程的 Linux 优化。
在 Docker 容器中更新 A-Parser
停止容器:
docker stop aparser
更新 A-Parser:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate
更新完成后启动 A-Parser
您也可以通过界面或一次性链接进行更新
在 Headful 模式下运行
对于需要以 headful 模式(带有虚拟显示器)启动浏览器的网站数据抓取,请使用镜像 aparser/runtime:headful。
从普通镜像切换到 headful 镜像:
停止容器:
docker stop aparser
下载 headful 镜像:
docker pull aparser/runtime:headful
使用新镜像启动 A-Parser:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser
对于 docker-compose,请在 docker-compose.yml 中更换镜像:
image: aparser/runtime:headful
然后执行:
docker compose up -d
启动后,在爬虫工具设置中开启 Chrome headless: 0。在 Chrome 启动日志中应显示 Headful。
novnc 服务器在 5900 端口可用,用于视觉监控,密码通过变量 VNC_PASSWORD 设置(默认值:docker)。
通过 docker-compose 启动
docker-compose.yml 示例
创建 docker-compose.yml 文件:
version: '3'
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
通过 docker-compose 启动
启动 A-Parser:
docker compose up -d
在 docker-compose 中优化线程数
通过 docker-compose 运行时,容器内部会对打开的文件/套接字数量有限制。要将限制增加到 10240,请在 a-parser 服务中添加 ulimits 块:
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240
同时建议在宿主机系统上进行 针对更多线程的 Linux 优化。