Docker と docker-compose
LinuxおよびMacOSへのDockerを使用した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 -> Downloads タブから取得してください。
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 と表示されるはずです。
視覚的な確認のためにポート5900でnovncサーバーが利用可能です。パスワードは変数 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チューニングを行うことをお勧めします。