Docker và docker-compose
Cài đặt A-Parser trên Linux và MacOS thông qua docker là phương pháp được khuyến nghị, chúng tôi đã chuẩn bị một image bao gồm tất cả các phụ thuộc và thư viện cần thiết để A-Parser và Headless Chrome hoạt động
Trước khi cài đặt
- Trước khi cài đặt, bạn cần khai báo IP trong Khu vực Thành viên.
- Cần phải cài đặt Docker vào hệ thống của bạn.
Tải xuống bản phân phối
Tải xuống và giải nén bản phân phối 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
Việc tải xuống được thực hiện qua một liên kết dùng một lần cho Linux. Bạn cần lấy nó trong Khu vực Thành viên, tab A-Parser -> Tải xuống
Chạy qua Docker
Chạy ở chế độ foreground
Chạy A-Parser ở chế độ foreground để xem log trong terminal:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground
Tùy chọn -foreground sẽ hiển thị nội dung tệp nhật ký trực tiếp trong terminal:
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
Sau khi khởi chạy, A-Parser sẽ khả dụng tại địa chỉ http://127.0.0.1:9091
Chạy ở chế độ nền
Để chạy container trong chế độ nền, hãy sử dụng lệnh:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser
Tối ưu hóa luồng khi chạy qua Docker
Theo mặc định, bên trong container có giới hạn về số lượng file/socket được mở. Để tăng giới hạn lên 10240 khi chạy qua Docker, hãy sử dụng tùy chọn --ulimit:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser
Ngoài ra, bạn nên thực hiện tối ưu hóa Linux để chạy nhiều luồng hơn trên hệ thống máy chủ.
Cập nhật A-Parser trong Docker container
Dừng container:
docker stop aparser
Cập nhật A-Parser:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate
Sau khi hoàn tất cập nhật, hãy khởi chạy A-Parser
Bạn cũng có thể thực hiện cập nhật thông qua giao diện hoặc bằng liên kết dùng một lần
Chạy ở chế độ Headful
Để cào dữ liệu các trang web yêu cầu chạy trình duyệt ở chế độ headful (với màn hình ảo), hãy sử dụng image aparser/runtime:headful.
Để chuyển từ image thông thường sang headful:
Dừng container:
docker stop aparser
Tải image headful:
docker pull aparser/runtime:headful
Khởi chạy A-Parser với image mới:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser
Đối với docker-compose, hãy thay đổi image trong docker-compose.yml:
image: aparser/runtime:headful
Sau đó thực hiện:
docker compose up -d
Sau khi khởi chạy, trong cài đặt của công cụ cào dữ liệu, hãy bật Chrome headless: 0. Trong nhật ký khi khởi chạy Chrome sẽ hiển thị Headful.
Máy chủ novnc khả dụng trên cổng 5900 để kiểm soát trực quan, mật khẩu được đặt qua biến VNC_PASSWORD (mặc định: docker).
Chạy qua docker-compose
Ví dụ docker-compose.yml
Tạo tệp docker-compose.yml:
version: '3'
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
Chạy qua docker-compose
Khởi chạy A-Parser:
docker compose up -d
Tối ưu hóa luồng trong docker-compose
Khi chạy qua docker-compose, bên trong container sẽ có giới hạn về số lượng tệp/socket được mở. Để tăng giới hạn lên 10240, hãy thêm khối ulimits vào dịch vụ a-parser:
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
ulimits:
nofile:
soft: 10240
hard: 10240
Ngoài ra, bạn nên thực hiện tối ưu hóa Linux để có nhiều luồng hơn trên hệ thống máy chủ (host).