import * as cheerio from 'cheerio'; import type { Observations } from '../core/types.js'; export function coletarHtml(obs: Observations): void { if (!obs.html) return; let $: cheerio.CheerioAPI; try { $ = cheerio.load(obs.html); } catch (erro) { obs.avisos.push(`Falha ao interpretar o HTML: ${(erro as Error).message}`); return; } const meta: Record = {}; $('meta').each((_, el) => { const nome = ($(el).attr('name') ?? $(el).attr('property') ?? $(el).attr('http-equiv') ?? '') .toLowerCase() .trim(); const conteudo = $(el).attr('content'); if (nome && conteudo != null) meta[nome] = conteudo; }); obs.meta = meta; const scriptSrc: string[] = []; $('script[src]').each((_, el) => { const src = $(el).attr('src'); if (src) scriptSrc.push(src); }); obs.scriptSrc = scriptSrc; const links: string[] = []; $('link[href]').each((_, el) => { const href = $(el).attr('href'); if (href) links.push(href); }); $('img[src]').each((_, el) => { const src = $(el).attr('src'); if (src) links.push(src); }); obs.linksAssets = links; }