Docker och docker-compose
Att installera A-Parser på Linux och MacOS via Docker är det rekommenderade sättet, vi har förberett en bild som innehåller alla nödvändiga beroenden och bibliotek för att köra A-Parser och Headless Chrome
Före installation
- Före installationen måste du ange din IP i Medlemsområdet.
- Du måste installera Docker på ditt system.
Ladda ner distributionen
Ladda ner och packa upp A-Parser-distributionen:
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
Nedladdningen sker via en engångslänk för Linux. Denna hämtas i Medlemsområdet, fliken A-Parser -> Nedladdningar
Starta via Docker
Starta i förgrundsläge
Starta A-Parser i förgrundsläge för att se loggar i terminalen:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground
Alternativet -foreground skriver ut loggfilens innehåll direkt i terminalen:
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
Efter start kommer A-Parser att vara tillgänglig på adressen http://127.0.0.1:9091
Starta i bakgrunden
För att starta containern i bakgrunden, använd kommandot:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime ./aparser
Optimering av trådar vid start via Docker
Som standard finns en begränsning för antalet öppna filer/sockets inuti containern. För att öka gränsen till 10240 vid start via Docker, använd alternativet --ulimit:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 --ulimit nofile=10240:10240 -t -d aparser/runtime ./aparser
Dessutom rekommenderas att utföra optimering av Linux för fler trådar på värdsystemet.
Uppdatering av A-Parser i Docker-container
Stoppa containern:
docker stop aparser
Uppdatera A-Parser:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t aparser/runtime ./aparser -foreground -doupdate
När uppdateringen är klar, starta A-Parser
Du kan också använda uppdatering via gränssnittet eller via en engångslänk
Start i Headful-läge
För dataskrapning av webbplatser som kräver att webbläsaren körs i headful-läge (med en virtuell display), använd imagen aparser/runtime:headful.
För att byta från en vanlig image till headful:
Stoppa containern:
docker stop aparser
Ladda ner headful-imagen:
docker pull aparser/runtime:headful
Starta A-Parser med den nya imagen:
docker run --rm --name aparser -v $(pwd)/aparser:/app -p 9091:9091 -t -d aparser/runtime:headful ./aparser
För docker-compose, byt ut imagen i docker-compose.yml:
image: aparser/runtime:headful
Kör sedan:
docker compose up -d
Efter start, aktivera Chrome headless: 0 i scraperns inställningar. I loggen vid start av Chrome bör Headful visas.
novnc-servern är tillgänglig på port 5900 för visuell kontroll, lösenordet ställs in via variabeln VNC_PASSWORD (standard: docker).
Körning via docker-compose
Exempel på docker-compose.yml
Skapa filen docker-compose.yml:
version: '3'
services:
a-parser:
image: aparser/runtime:latest
command: ./aparser
restart: always
volumes:
- ./aparser:/app
ports:
- 9091:9091
Körning via docker-compose
Starta A-Parser:
docker compose up -d
Trådoptimering i docker-compose
Vid körning via docker-compose finns en begränsning för antalet öppna filer/sockets inuti containern. För att öka gränsen till 10240, lägg till blocket ulimits i tjänsten 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
Det rekommenderas även att utföra Linux-optimering för fler trådar på värdsystemet.