Crawler Distribuito (spider)

action_crawler_distributed · action · Utility · Available · v1.0.0

Description

Spider crawler distribuito enterprise per indicizzazione massiva di siti web — orchestra una pipeline di N worker paralleli che processano una queue Redis condivisa di URL da visitare, con tutti i guardrail di crawling professionale: depth-limit configurable per evitare runaway su siti con loop circolari, dedup tramite bloom filter (memory-efficient probabilistic data structure che evita di rivisitare URL già processate senza dover keep in RAM un Set di milioni di URL), respect del robots.txt del sito target con parsing semantico Allow/Disallow/Crawl-delay/User-agent, sitemap-first seed strategy (parte dal sitemap.xml ufficiale invece di crawl dalla home + follow link — più efficiente e copre meglio i deep page), parallel workers configurable da 1 a 100 per scaling horizontale del throughput, checkpoint resume robusto per riprendere dopo crash o interruzione volontaria senza dover ricominciare daccapo. Architettura BYO (Bring Your Own — il servizio crawler gira separato dal runtime FlowForge per scaling indipendente): supporta come backend Heritrix (il crawler della Wayback Machine di archive.org), Scrapy-cluster (lo standard Python distributed scraping), oppure custom Rust crawler per use case performance-critical. Setup tipico: docker-compose con Redis Stack (per queue + bloom filter) + N crawler worker container + flowforge-bridge HTTP che espone API standard al runtime. Lifecycle 4-action: action=start (lancia un nuovo job di crawl con seed URL + config — ritorna jobId opaque univoco per tracking + handoff async), action=status (metrics live del job in corso: URL processed, queued, errored, current depth, ETA — utile per progress monitoring dashboard), action=stop (termina graceful il job preservando lo state checkpoint per future resume), action=results (paginated retrieval dei result batch con cursor — pattern naturale per workflow downstream che consumano i risultati a chunks). Pattern di callback webhook opzionale: invece di poll periodico con action=results, il caller può fornire un webhook URL e il crawler service pusha batch automatic quando hanno completed N pagine. Use case: indicizzazione completa di sito proprio per generation di interno search engine private + RAG retrieval index per knowledge base AI; competitor analysis (con respect del robots.txt — sempre, per evitare ToS issue legali); archivio storico di pagine prima di redesign per detection di changes future; monitoraggio modifiche periodiche di un sito (re-crawl settimanale + diff con previous run); link audit complessivo per individuazione 404 broken link + redirect chain inefficienti; data collection per training di LLM/NLP model su corpus dominio-specifico autorizzato.

⚙️ Configuration parameters

Fields shown in the editor when configuring the node. Generated directly from the NodeDefconfigFields.

FieldTypeRequiredDefaultDescription
action
Azione
enum
startstatusstopresults
yesstartstart = 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.

⬆️ Node output

Fields available to downstream nodes via $node.<alias>.json.<field>:

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

💡 Configuration example

JSON snippet of the node as it appears in the workflow. Values are derived fromdefaultValue and from required parameters.

{
  "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
  }
}

🔗 Related nodes in the same category

Ready to use Crawler Distribuito (spider)?

Available now on all FlowForge plans. Try it free without a credit card.

Start freeBrowse all nodes