Crawler Distribuito (spider)

action_crawler_distributed · action · Utility · Disponibile · v1.0.0

Descrizione

Spider crawler distribuito con queue Redis, depth-limit, dedup bloom filter, robots.txt respect, sitemap-first seed, parallel workers, checkpoint resume. Use case: indicizzazione completa sito (proprio o autorizzato), competitor analysis (con respect robots), archivio storico pagine, monitoraggio modifiche, link audit. Lifecycle: action=start lancia job → ritorna jobId → callback webhook per batch (oppure poll periodico con action=results+cursor). action=status per metriche live, action=stop per terminare graceful. Architettura BYO: il servizio crawler gira separato (Heritrix/Scrapy-cluster/custom Rust). Setup: docker-compose con Redis Stack + N crawler workers + flowforge-bridge HTTP.

⚙️ Parametri di configurazione

Campi mostrati nell’editor quando si configura il nodo. Generati direttamente dal NodeDefconfigFields.

CampoTipoRequiredDefaultDescrizione
action
Azione
enum
startstatusstopresults
sistartstart = avvia nuovo job (ritorna jobId). status = metriche job (richiede jobId). stop = termina job. results = paginated batch (richiede jobId+cursor opzionale).
endpoint
Crawler endpoint
stringno
https://crawler.miosito.com (vuoto = env FLOWFORGE_CRAWLER_ENDPOINT)
Servizio crawler self-host o managed Zeli.
apiKey
API Key
string (encrypted)noBearer token.
jobId
Job ID (status/stop/results)
stringno
crawl_abc123
Required per status/stop/results. Per start, opzionale (auto-generato se vuoto) o per resume (con resume=true).
seeds
Seed URLs
string (multiline)no
https://site.com https://site.com/blog
URLs iniziali (comma o newline). Required per action=start.
maxDepth
Max depth
numberno3Profondita\` max link da seed. 0 = solo seed. Max 10.
maxPages
Max pages
numberno1000Pagine totali max. Hard stop. Min 1, max 100k.
allowDomains
Allow domains
stringno
site.com, www.site.com (vuoto = hostname dei seeds)
Solo questi domini vengono crawled. Default: hostname dei seeds (no cross-domain).
denyPatterns
Deny patterns (regex)
string (multiline)no
/admin/.* .*\.pdf$ /logout
Regex URL da NON crawlare (es. /admin, /logout, file binari).
respectRobots
Respect robots.txt
booleannotrueRFC 9309 compliance. Default ON (raccomandato).
sitemapFirst
Sitemap-first seed
booleannofalsePrima di crawlare HTML, fetcha sitemap.xml e accoda quegli URL in priorita\`.
bloomCapacity
Bloom filter capacity
numberno1000000Slot per dedup URL. Default 1M = ~7MB RAM. Aumenta per crawl giganti.
bloomFpr
Bloom FP rate
numberno0.001False positive rate. Default 0.001 (0.1%). Lower = piu\` RAM.
parallelism
Worker paralleli
numberno4Coroutine paralleli per il job. Max 50.
rateLimitPerHostQps
Rate-limit per host (QPS)
numberno2Max requests/sec per hostname (politeness). Default 2 QPS.
userAgent
User-Agent
stringnoFlowForge-Crawler/1.0 (+https://flowforge.automazionezeli.com)UA identificativo (etica, transparency).
callbackUrl
Callback webhook
stringno
https://tenant.app.automazionezeli.com/webhooks/crawler
Webhook FlowForge che riceve batch di pages. Vuoto = no callback, usa action=results.
callbackSecret
Callback secret
string (encrypted)noHMAC secret per autenticare il callback. Validato da trigger_webhook a downstream.
callbackBatchSize
Batch size callback
numberno10Pagine per callback POST. Default 10. Max 1000.
cursor
Cursor (results)
stringnoCursor paginazione per action=results.
resume
Resume job
booleannofalseSe ON + jobId esistente: resume da checkpoint. Altrimenti errore se jobId esiste.

⬆️ Output del nodo

Campi disponibili nei nodi successivi via $node.<alias>.json.<field>:

  • jobId
  • status
  • queueDepth
  • items
  • nextCursor
  • count
  • seeds
  • maxDepth
  • maxPages
  • pagesCrawled
  • stopped

💡 Esempio configurazione

Snippet JSON del nodo come compare nel workflow. I valori sono derivati daidefaultValue e dai parametri required.

{
  "id": "node-action_crawler_distributed-1",
  "defId": "action_crawler_distributed",
  "label": "Crawler Distribuito (spider)",
  "config": {
    "action": "start",
    "maxDepth": 3,
    "maxPages": 1000,
    "respectRobots": true,
    "sitemapFirst": false,
    "bloomCapacity": 1000000,
    "bloomFpr": 0.001,
    "parallelism": 4,
    "rateLimitPerHostQps": 2,
    "userAgent": "FlowForge-Crawler/1.0 (+https://flowforge.automazionezeli.com)",
    "callbackBatchSize": 10,
    "resume": false
  }
}

🔗 Nodi correlati nella stessa categoria

Pronto a usare Crawler Distribuito (spider)?

Disponibile da subito in tutti i piani FlowForge. Provalo gratis senza carta di credito.

Inizia gratisSfoglia tutti i nodi