Description
Parser dichiarativo enterprise di HTML usando selettori CSS standard — l'estrattore "scraper-friendly" che permette al business user di definire una mapping semplice "fieldName → CSS selector" e ottenere in output un object JavaScript strutturato con tutti i campi richiesti, evitando il dover scrivere codice JavaScript imperative con querySelector chain + manual error handling. Il pattern è analogo a quello di Jsoup (Java), Cheerio (Node.js), Beautiful Soup (Python con CSS support) — tutti utilizzati in produzione da progetti enterprise di scraping responsabile per parsing di HTML payload già scaricato da fetch upstream o action_web_fetch_advanced. Coverage piena dei selettori CSS3 specification: tag selector (h1, p, article), id selector (#main-content, #checkout-form), class selector (.product-card, .price-tag), attribute selector ([data-sku], [href*="amazon"], [type="email"]), pseudo-class selector (:nth-child(2n), :first-child, :last-child, :not(.disabled), :has(.discount)), combinator complessi (descendant " ", child >, adjacent sibling +, general sibling ~) — l'utente può copy-paste qualsiasi selettore dal DevTools del browser e funziona. Per ogni campo configurabile la strategia di extraction del valore: (1) "text" default — extract solo il textContent visibile (HTML stripped, gli spazi normalizzati), pattern per estrarre testo human-readable; (2) "html" — extract il innerHTML del element matchato (preserva il markup interno per cases come "description con tag <strong> da preservare"); (3) "attr" con parametro attrName — extract il valore di uno specifico attribute HTML (es. attr=href per link URL, attr=src per immagini, attr=data-sku per identifier nascosti in data-attribute, attr=value per form input default value); (4) "list" — extract un array con il valore (testo o attr) di TUTTI i match del selector invece di solo il primo, pattern per liste enumerabili tipo tutti i titoli di un'archivio blog o tutti i prezzi in una pagina di confronto product. Sicurezza enterprise: NO JavaScript execution sul HTML (il parser è pure HTML — no DOM-level events, no fetch, no XHR), completely safe per processing di HTML untrusted da source web arbitrari senza rischio di XSS o code injection. Output strutturato: { extracted: { fieldName1: "value", fieldName2: ["arr", "of", "values"], ... }, totalFieldsExtracted, totalFieldsMissing, performance: { selectorsMatched, processingTime } }. Use case: parse listing prodotti proprio e-commerce per export Excel quotidiano (cron daily + fetch del catalog page + html_select per scraping di SKU+name+price+stock+image_url → xlsx_build → send_email al merchandising team); estrazione di titolo/prezzo/disponibilità da pagine prodotto competitor monitorate per pricing intelligence; raccolta sistematica di righe da tabella HTML di report istituzionale (es. ISTAT, AGENAS, Banca d'Italia che pubblicano stats in tabelle senza open data CSV equivalent); ingest content blog per RAG/embedding pipeline partendo dalla homepage del blog (extract title+author+date+content_html di ogni post per indicizzazione knowledge base AI); parsing di SERP page (Google/Bing search result) per analisi SEO competitive intelligence.
