Linha de comandos

A referência completa de node src/cli.mjs - todas as opções com o seu valor por predefinição, saídas (NDJSON, CSV, relatório HTML), comparação, segmentos, retoma, sitemap e extração.

Utilização

node src/cli.mjs <url> [options]
node src/cli.mjs --list urls.txt [options]

A CLI mostra a pontuação e os problemas no seu idioma, grava o rastreio em NDJSON gzip (que a interface abre com Importar ou a partir do histórico), e com --csv exporta pages.csv e issues.csv, com --report escreve um relatório de auditoria HTML com a sua marca, que pode imprimir em PDF. JSON, CSV e relatório são escritos cada um em fluxo e de forma independente: uma falha não bloqueia os outros, e o código de saída é 1 se algum falhou.

Exemplos

node src/cli.mjs https://www.example.com --max 2000 --csv --report --lang pt
node src/cli.mjs https://www.example.com --render --ua googlebotMobile --report --client "ACME" --author "Your name"
node src/cli.mjs --list urls.txt --lang de --csv
node src/cli.mjs --sitemap https://www.example.com/sitemap.xml --extract "price=.price" --extract "sku=xpath://meta[@itemprop='sku']/@content" --csv
node src/cli.mjs https://www.example.com --report --compare crawls/previous.jsonl.gz
node src/cli.mjs --resume crawls/.en-cours/www.example.com_2026-10-21T09-00-00.ndjson --csv
node src/cli.mjs https://www.example.com --max 20000 --segments segments.json --csv --report
node src/cli.mjs https://www.example.com --ga4-key ga4-key.json --ga4-property 123456789 --csv
node src/cli.mjs https://staging.example.com --auth user:pass --rate 2 --robots report --path-limit "/blog/=200" --extract "price=.price" --remove-params "utm_*,gclid"
node src/cli.mjs --help

Opções

Gerado a partir de node src/cli.mjs --help no repositório (3.21.0); os valores por predefinição vêm do código.

OpçãoDescriçãoPor predefinição
--max NNúmero máximo de URLs500
--depth NProfundidade máxima20
--concurrency NPedidos simultâneos5
--delay MSPausa entre dois pedidos por worker, em ms0
--ua NAMEUser-agent: arachnide | googlebot | googlebotMobile | chromearachnide
--renderRenderização JavaScript com o Chrome / Edge (navegador instalado)
--list FILEModo lista: rastrear apenas os URLs de um ficheiro de texto (um por linha)
--externalVerificar os links externos
--imagesVerificar o peso e o estado das imagens
--rate NURLs por segundo no máximo (limite global)
--robots MODErespect | report (ignorar mas assinalar) | ignorerespect
--custom-robots FUsar este ficheiro robots.txt em vez do ficheiro do site
--per-depth NURLs no máximo por nível de profundidade
--folder-depth NProfundidade máxima de pastas
--max-params NNúmero máximo de parâmetros de URL
--max-redirects NRedirecionamentos seguidos no máximo10
--path-limit P=NLimite por caminho de URL, ex. "/blog/=200" (repetível)
--remove-params LRemover parâmetros de URL, ex. "utm_*,gclid"
--auth USER:PASSAutenticação HTTP (sites de pré-produção)
--header "K: V"Cabeçalho HTTP personalizado (repetível)
--extract N=SELExtração personalizada (repetível): N=SEL (CSS, texto), N=/regex/, N=xpath:EXPR, N=attr:href:SEL, N=html:SEL, N=count:SEL; uma coluna por regra em pages.csv
--sitemap URLModo lista a partir de um sitemap ou de um índice de sitemaps: rastrear exatamente os URLs listados
--keep-paramsManter os parâmetros de URL tal como estão (por predefinição: ordenados, parâmetros de acompanhamento utm_*/gclid/fbclid… removidos)
--robots-unavailable allow|disallowrobots.txt em 5xx ou inacessível: proibir tudo (RFC 9309, por predefinição) ou permitir tudodisallow
--psi NPageSpeed Insights + Core Web Vitals (CrUX) para as N páginas mais importantes
--psi-key KEYChave de API Google (ou variável ARACHNIDE_PSI_KEY) · --psi-strategy mobile|desktop
--gsc-key FILESearch Console: ficheiro de chave JSON da conta de serviço
--gsc-property PPropriedade Search Console (sc-domain:example.com), detetada automaticamente se omitida
--gsc-days NPeríodo Search Console em dias90
--gsc-csv FILEImportar uma exportação CSV «Páginas» do Search Console em vez da API
--ga4-key FILEGoogle Analytics 4: ficheiro de chave JSON da conta de serviço (a do Search Console funciona se tiver acesso)
--ga4-property IDID de propriedade GA4 (123456789), detetado a partir do domínio se omitido
--ga4-days NPeríodo GA4 em dias90
--ga4-csv FILEImportar uma exportação CSV GA4 «Páginas e ecrãs» (ou «Página de destino») em vez da API
--alert-email A,BEnviar um alerta por e-mail se o rastreio piorou em relação ao anterior (para cron)
--alert-score-drop NLimiar de alerta em pontos de pontuação5
--ignore-robotsIgnorar o robots.txt (equivale a --robots ignore)
--subdomainsRastrear também os subdomínios
--no-sitemapNão ler os sitemaps XML
--include REGEXRastrear apenas os URLs que correspondem à regex (repetível: uma regex por opção)
--exclude REGEXIgnorar os URLs que correspondem à regex (repetível)
--stay-in-folderNão sair da pasta do URL inicial (https://x.com/blog/ → apenas /blog/…)
--search TEXTPesquisa personalizada no código-fonte (/regex/ aceite)
--segments FILESegmentos (JSON exportado da aplicação, ou [{ "name", "match", "rules": [{ "field", "op", "value" }] }]): pontuação, erros e médias por secção, coluna segmento no CSV, secção no relatório
--segment-foldersUm segmento por diretório de primeiro nível (automático)
--segment IDRelatório e CSV apenas sobre este segmento (ex. --segment blog)
--lang CODEen | fr | de | es | it | pt (etiquetas, CSV, relatório)
--csvExportar também pages.csv e issues.csv
--reportGerar também um relatório de auditoria HTML profissional (para imprimir em PDF) · --report-title, --client, --author, --company, --contact, --website, --color "#5b8c1e"
--compare FILERastreio anterior para mostrar a evolução no relatório
--out DIRPasta de saída./crawls
--resume FILERetomar um rastreio interrompido a partir do seu diário (<out>/.en-cours/*.ndjson)
--no-journalNão escrever o diário de retoma durante o rastreio

Regras de extração

--extract NOME=REGRA, repetível, uma coluna por regra em pages.csv:

RegraSignificado
price=.priceSeletor CSS, conteúdo de texto
author=attr:content:meta[name=author]Seletor CSS, valor de um atributo
menu=html:nav.mainSeletor CSS, HTML interno
links=count:a[href]Seletor CSS, número de correspondências
sku=xpath://meta[@itemprop='sku']/@contentXPath (Chrome em modo de renderização, jsdom caso contrário)
phone=/\+34 \d{3} \d{3} \d{3}/Expressão regular (tempo limite de 2 segundos por página)

Saídas

Os ficheiros são escritos em --out (por predefinição ./crawls), com o nome <anfitrião>_<data>:

  • <anfitrião>_<data>.jsonl.gz: o rastreio completo (NDJSON, um objeto JSON por linha, gzip);
  • <anfitrião>_<data>_pages.csv e _issues.csv com --csv (separados por ponto e vírgula, UTF-8 com BOM, uma coluna por extração, uma coluna Segmento quando há segmentos definidos);
  • <anfitrião>_<data>_report_<idioma>.html com --report;
  • crawls/.en-cours/<anfitrião>_<data>.ndjson: o diário de retoma enquanto um rastreio corre (conservado após Ctrl+C, eliminado no fim).

Prima Ctrl+C para parar um rastreio de forma limpa; a CLI mostra então o comando --resume para o retomar mais tarde.

Cron e alertas

--alert-email you@example.com --alert-score-drop 5 compara o rastreio com o rastreio anterior do mesmo anfitrião na pasta de saída e envia-lhe um e-mail apenas quando algo piorou (definições SMTP da aplicação, ou ARACHNIDE_SMTP_URL). Consulte Dados Google, rastreios agendados e alertas.

Outros comandos

ComandoFunção
npm startA interface web em http://localhost:4000 (PORT e HOST para mudar; ARACHNIDE_NO_SCHEDULER=1 desativa os rastreios agendados)
npm run mcpO servidor MCP por stdio (também arachnide-mcp como bin)
npm run schedulerOs rastreios agendados sem a interface
npm run bench -- --pages 200000O benchmark do site sintético
npm testA suite de testes (Node 18, 20 e 22)
Versão 3.21.0 As tabelas de referência e o registo de alterações são gerados a partir do repositório do Arachnide (commit f287355). Editar esta página no GitHub