Easy Scraper
unknown
javascript
a year ago
1.7 kB
7
Indexable
Never
const puppeteer = require('puppeteer'); /* Il codice è incapusolato all'interno di una funzione asincrona il che significa che verrà eseguita non appena il modulo sarà importato. */ (async () => { const browser = await puppeteer.launch({ headless: true }); const page = await browser.newPage(); const url = 'https://ted.europa.eu/udl?uri=TED:NOTICE:635180-2023:DATA:EN:HTML&src=0&tabId=3'; await page.goto(url); const rows = await page.$$('tbody tr'); // Crea un dizionario const values = { 'Title': (value) => console.log(`Title: ${value}`), 'Publication date': (value) => console.log(`Publication date: ${value}`), 'Deadline for submission': (value) => console.log(`Deadline for submission: ${value}`) }; for (const row of rows) { /* Per ciascuna riga nella tabella, viene estratto il testo all'interno di quella riga e quindi, per ogni chiave nell'oggetto 'values', viene verificato se il testo della riga contiene la chiave. Se la chiave è presente, viene estratto il valore corrispondente, che viene quindi passato alla funzione corrispondenti nell'oggetto 'values' per la stampa. */ const rowText = await page.evaluate(element => element.textContent, row); // page.evaluate | serve per eseguire codice js nella pagina web for (const keyword in values) { if (rowText.includes(keyword)) { const value = rowText.split(keyword)[1].trim(); values[keyword](value); } } } await browser.close(); })();