Configurazione del crawl

Ogni opzione del crawl con il suo valore predefinito - limiti, velocità, robots.txt, rendering, ambito, estrazione, autenticazione, modalità elenco e sitemap.

Clicca su Opzioni (l’ingranaggio) per aprire la finestra Configurazione, modellata sulla configurazione dello spider di un crawler desktop. Le tue impostazioni vengono memorizzate, tranne la password HTTP e gli header personalizzati, che spesso contengono un cookie di sessione o un token.

SchedaImpostazioni
SpiderLeggere le sitemap XML, seguire i canonical, includere i sottodomini, controllare i link esterni e le immagini
LimitiTotale del crawl, profondità di crawl, URL per livello di profondità, profondità delle cartelle, query string, redirect da seguire, lunghezza degli URL, link per pagina, dimensione della pagina, limiti per percorso URL (/blog/ = 200, uno per riga)
VelocitàNumero massimo di thread, numero massimo di URL al secondo, timeout
robots.txtRispetta / ignora ma segnala lo stato / ignora, robots.txt personalizzato, tester di URL
RenderingRendering JavaScript, user-agent (Arachnide, Googlebot desktop/smartphone, Chrome), Accept-Language
Includi / escludiRegex di inclusione / esclusione, rimozione dei parametri degli URL (utm_*, gclid), ignorare tutti i parametri, ricerca personalizzata
EstrazioneFino a 20 estrattori: selettore CSS (testo, attributo, HTML o conteggio) o regex
AutenticazioneUtente e password HTTP, header personalizzati (cookie, token)

Spider

  • Leggi le sitemap XML (attivo): le sitemap dichiarate nel robots.txt o in /sitemap.xml vengono lette, compresi gli indici di sitemap e i file .gz, e i loro URL messi in coda. Le sitemap di immagini e video vengono saltate; vengono letti al massimo 500 file di sitemap.
  • Segui i canonical (attivo): un canonical che punta a un URL non scansionato lo mette in coda.
  • Includi i sottodomini (disattivo): blog.example.com fa parte di example.com solo quando questa opzione è attiva. Un’altra porta non è mai il sito analizzato.
  • Verifica i link esterni e verifica le immagini (peso, stato, formato) sono disattivi per impostazione predefinita per mantenere leggeri i crawl dei clienti.

Limiti

Finestra Configurazione, scheda Limiti: totale del crawl, profondità, URL per livello, profondità delle cartelle, query string, reindirizzamenti, lunghezza degli URL, link per pagina, peso della pagina, limiti per percorso
ImpostazionePredefinitoNote
Totale del crawl (maxPages)500Conta le pagine effettivamente scaricate; gli URL bloccati da robots.txt non lo consumano. Fino a 10 000 000.
Profondità di crawl (maxDepth)20I reindirizzamenti non aggiungono profondità.
URL per livello di profondità, profondità delle cartelle, query string, reindirizzamenti da seguire (10), lunghezza degli URL, link per pagina, peso della pagina (maxPageSizeKb)—Gli URL saltati sono contati per motivo nella dashboard. I corpi delle risposte sono letti in streaming e abbandonati oltre il limite di dimensione.
Limiti per percorso URL—Uno per riga, es. /blog/ = 200.

Velocità

  • Thread massimi (concurrency): 5 per impostazione predefinita, da 1 a 30. Su un sito di un cliente, resta tra 2 e 5.
  • URL massimi al secondo (maxUrlPerSec): un limite globale, utile sugli hosting condivisi.
  • Pausa tra le richieste per worker, e timeout.

Le risposte di limitazione della frequenza (429 e 503 con Retry-After) vengono rispettate e ritentate; 500, 502, 504 ed errori di connessione ricevono un nuovo tentativo differito alla fine della coda.

robots.txt

Finestra Configurazione, scheda robots.txt: tre modalità, robots.txt personalizzato e tester di URL

Tre modalità: rispetta (predefinita), ignora ma segnala (gli URL bloccati vengono scansionati e restano contrassegnati) e ignora. Puoi incollare un robots.txt personalizzato per testare un file prima di pubblicarlo, e il tester integrato dice se un URL è consentito e quale regola si applica. Arachnide segue le regole di Google per il robots.txt (RFC 9309):

  • un robots.txt che risponde 4xx significa che tutto è consentito;
  • un robots.txt che risponde 5xx o irraggiungibile significa che tutto è vietato, con un avviso esplicito. Due vie d’uscita: l’opzione robots.txt non disponibile → consenti (--robots-unavailable allow), oppure la modalità segnala / ignora;
  • in modalità elenco e con i sottodomini, il robots.txt viene letto una volta per host.

Rendering

Il rendering JavaScript usa il Chrome, Edge, Chromium o Brave già installato (tramite puppeteer-core; non viene scaricato nulla). Arachnide confronta l’HTML grezzo con la pagina renderizzata (contenuto, link, title, H1, canonical, noindex), segnala gli errori JS e i reindirizzamenti JavaScript, e misura LCP e CLS in laboratorio. Chrome viene riavviato ogni 500 pagine renderizzate per limitarne la memoria, e riavviato una volta se muore.

User agent: Arachnide (predefinito), Googlebot desktop, Googlebot smartphone, Chrome o una stringa personalizzata. Come Googlebot, per impostazione predefinita non viene inviato alcun header Accept-Language; puoi impostarne uno. Se un sito risponde 403 all’agente Arachnide, il crawl passa automaticamente a Chrome e te lo segnala.

Includi / escludi

  • Includi ed escludi: un’espressione regolare per riga. Una riga non valida viene ignorata e segnalata. L’URL di partenza viene sempre scansionato.
  • Resta nella cartella di partenza: https://example.com/blog/ scansiona solo /blog/….
  • Rimuovi parametri URL come utm_* o gclid (caratteri jolly accettati). Dalla 3.21, i parametri sono ordinati per chiave e i parametri di tracciamento noti (utm_*, gclid, fbclid, msclkid, mc_cid, srsltid, _ga…) vengono rimossi per impostazione predefinita, così ?a=1&b=2 e ?b=2&a=1 sono una sola pagina; mantieni i parametri così come sono ripristina il comportamento grezzo.
  • Ignora tutti i parametri, e ricerca personalizzata (un testo o una /regex/ da trovare nel codice sorgente).
  • Un percorso che produce 200 varianti di parametri viene segnalato una sola volta come trappola a faccette, la firma dei filtri combinabili che consumano il budget.

Estrazione

Scheda Estrazione con prezzi estratti tramite selettore CSS

Fino a 20 estrattori, ognuno con un nome e una regola:

  • Selettore CSS con un target: testo, attributo, HTML interno o conteggio;
  • XPath (3.21): valutato in Chrome in modalità rendering, oppure sull’HTML grezzo tramite jsdom, una dipendenza opzionale caricata solo quando esiste una regola XPath (npm install jsdom se vedi l’avviso);
  • Regex, eseguita in un worker con un timeout di 2 secondi: un pattern catastrofico viene interrotto per quella pagina e il crawl continua.

I valori compaiono nella scheda Estrazione, in una colonna per regola in pages.csv, e possono guidare i segmenti con il campo extract:<name>. La CLI accetta le stesse regole con --extract (vedi Riga di comando).

Autenticazione

Autenticazione HTTP (utente e password) e header personalizzati (cookie, token) per i siti di staging. Vengono inviati solo al sito analizzato, anche in modalità rendering, e non vengono mai salvati.

Modalità sito, elenco e sitemap

Il selettore accanto al campo dell’indirizzo sceglie tra scansionare un sito (seguendo i link) e un elenco di URL che incolli (fino a 500 000 URL dalla 3.21; i link non vengono seguiti, il linking interno è non misurato). La CLI aggiunge --list urls.txt e --sitemap URL, che scansiona esattamente gli URL di una sitemap o di un indice di sitemap, deduplicati e normalizzati. Gli agenti IA ottengono le stesse modalità tramite mode, urls e sitemap_url sugli strumenti di crawl.

Riprendere un crawl interrotto

Durante un crawl, Arachnide aggiunge righe a un diario di ripresa (crawls/.en-cours/<id>.ndjson): ogni URL messo in coda, ogni pagina elaborata. Dopo un crash o un’interruzione, il diario è elencato nella schermata iniziale e il crawl può essere ripreso da dove si era fermato, perdendo solo gli ultimi secondi. Il diario viene eliminato quando il crawl è completo. Nella CLI: --resume FILE, oppure --no-journal per non scrivere nulla.

Versione 3.21.0 Le tabelle di riferimento e il changelog sono generati dal repository di Arachnide (commit f287355). Modifica questa pagina su GitHub