import axios from 'axios'; import * as cheerio from 'cheerio'; import * as fs from 'fs'; import * as path from 'path'; interface FaberKabelData { url: string; verwendung: string; technischeDaten: { [key: string]: string }; } async function scrapeFaberKabel(url: string): Promise { try { const response = await axios.get(url); const $ = cheerio.load(response.data); // Extract Verwendung const verwendung = $('#applicationdata .text-module--light').text().trim(); // Extract Technische Daten const technischeDaten: { [key: string]: string } = {}; $('#technicaldata table.attributes tr').each((i, el) => { const tds = $(el).find('td'); if (tds.length === 2) { const key = $(tds[0]).text().trim(); const value = $(tds[1]).text().trim(); if (key && value) { technischeDaten[key] = value; } } }); return { url, verwendung, technischeDaten, }; } catch (error) { console.error('Error scraping:', url, error); return { url, verwendung: '', technischeDaten: {}, }; } } async function scrapeAll(urls: string[]): Promise { const results: FaberKabelData[] = []; for (const url of urls) { console.log('Scraping:', url); const data = await scrapeFaberKabel(url); results.push(data); } return results; } // List of Faber Kabel URLs for KLZ products const faberKabelUrls = [ 'https://shop.faberkabel.de/Starkstromkabel-1-30-kV/Mittelspannungskabel/Mittelspannungskabel-N2XS-FL-2Y/', 'https://shop.faberkabel.de/Starkstromkabel-1-30-kV/Mittelspannungskabel/Mittelspannungskabel-N2XS2Y/', 'https://shop.faberkabel.de/Starkstromkabel-1-30-kV/Mittelspannungskabel/Mittelspannungskabel-N2XSF2Y/', 'https://shop.faberkabel.de/Starkstromkabel-1-30-kV/Mittelspannungskabel/Mittelspannungskabel-N2XSY/', 'https://shop.faberkabel.de/Starkstromkabel-1-30-kV/Mittelspannungskabel/Mittelspannungskabel-NA2XS2Y/', 'https://shop.faberkabel.de/Starkstromkabel-1-30-kV/Mittelspannungskabel/Mittelspannungskabel-NA2XSF2Y/', 'https://shop.faberkabel.de/Starkstromkabel-1-30-kV/Mittelspannungskabel/Mittelspannungskabel-NA2XS-FL-2Y/', 'https://shop.faberkabel.de/Starkstromkabel-1-30-kV/Mittelspannungskabel/Mittelspannungskabel-NA2XSY/', ]; async function main() { const data = await scrapeAll(faberKabelUrls); const outputPath = path.join(__dirname, '..', 'faber-kabel-data.json'); fs.writeFileSync(outputPath, JSON.stringify(data, null, 2)); console.log('Data saved to:', outputPath); } if (require.main === module) { main(); } export { scrapeFaberKabel, scrapeAll };