Na tyhle typy uloh je primo delane GO.
Kazdy jednotlivy crawler do masivniho poolu gorutin (klidne 1000 palalelnich crawleru), prametry predavat input channelem, vysledky serializovat zase v output channelu.
Dokonce i ty jednotlive crawlery muzes rozparalelizovat do pipelines propojenych channely:
https://blog.golang.org/pipelinesA pokud i tohle by bylo malo, jednoduse pomoci NATS message busu to rozfrcas na vice masin, kazdy poresi balik vstupnich dat.
Ale drive nez zacnes, chce to overit, jestli v GO zvladnes ten XPATH search a podobne serepeticky, tedy nejprve jedoduchy PoC, ktery udela jede seriovy crawler, rozmlatit to do gorutin udelas pozdeji jednoduse, to je hlavni vyhoda a krasa GO.
A pokud to nepude, jako safe reseni bych zvolil Jawu, tam pude vsechno, akorat krapet systemove nenazrane, a mozna to bude i rychlejsi nez GO.
C/C++ je pro tenhle typ uloh sebevrazda, 80% casu budes resit okolostojicnosti typu hlidani threadu a memory alokaci, v GO nebo Jave nebudes resit vubec nebo jednoduseji.