const { chromium } = require('@playwright/test'); (async () => { const browser = await chromium.launch(); const sims = [ 'klima', 'fluss', 'heli', 'logistik', 'busfahrt', 'farmer', 'energiemanager', 'eu-werkstatt', 'sonnensystem', 'weltkueche', 'fluggesellschaft', 'entscheidungstag', ]; const rows = []; for (const sim of sims) { const page = await browser.newPage(); const r = await page.goto('https://geograsim.at/modul-' + sim); if (r?.status() !== 200) { rows.push({sim, status:r?.status()}); await page.close(); continue; } await page.waitForTimeout(800); const data = await page.evaluate(() => { const meta = document.querySelectorAll('.md-meta-item'); const out = {}; meta.forEach(el => { const lbl = el.querySelector('.md-meta-label')?.textContent.trim().replace(':',''); const val = el.querySelector('.md-meta-value')?.textContent.trim(); if (lbl) out[lbl] = val; }); return { title: document.querySelector('h1')?.textContent.trim(), meta: out, }; }); rows.push({sim, ...data}); await page.close(); } rows.forEach(r => console.log(JSON.stringify(r))); await browser.close(); })();