sheets
This commit is contained in:
81
scripts/scrape-faber-kabel.ts
Normal file
81
scripts/scrape-faber-kabel.ts
Normal file
@@ -0,0 +1,81 @@
|
||||
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<FaberKabelData> {
|
||||
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<FaberKabelData[]> {
|
||||
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 };
|
||||
Reference in New Issue
Block a user