📰 Latest News
ID: ${latestNews.id}
Title: ${latestNews.title}
Time: ${latestNews.time}
🔍 News Details
Title: ${details.title}
Time: ${details.time}
${details.desc?.replace(/\n/g, "
")}
📦 Copyable JSON
${JSON.stringify(fullJSON, null, 2)}
const express = require('express'); const puppeteer = require('puppeteer'); const app = express(); const PORT = process.env.PORT || 3000; app.get('/', async (req, res) => { let browser; try { browser = await puppeteer.launch({ headless: true }); const page = await browser.newPage(); await page.goto('https://www.helakuru.lk/esana', { waitUntil: 'networkidle2' }); await page.waitForSelector('.news_row_esena', { timeout: 5000 }); const latestNews = await page.evaluate(() => { const firstNews = document.querySelector('.news_row_esena'); if (!firstNews) return null; return { id: firstNews.getAttribute('data-news-id'), image: firstNews.querySelector('#newsThumbnailVerti')?.src || null, title: firstNews.querySelector('p.mb-0')?.innerText.trim() || null, time: firstNews.querySelector('span.news_time')?.innerText.trim() || null, }; }); const detailUrl = `https://www.helakuru.lk/esana/news/${latestNews.id}`; await page.goto(detailUrl, { waitUntil: 'networkidle2' }); await page.waitForSelector('#main-news-container-without-comments', { timeout: 5000 }); const details = await page.evaluate(() => { const getText = (selector) => document.querySelector(selector)?.innerText.trim() || null; const getImage = () => document.querySelector('#newsThumbnail img')?.src || document.querySelector('#newsThumbnail')?.src || null; return { image: getImage(), title: getText('#main-news-container-without-comments h2'), time: getText('#main-news-container-without-comments span'), desc: getText('#main-news-container-without-comments .news-single-content'), }; }); const fullJSON = { latestNews, details }; const html = `
${error.message}`);
} finally {
if (browser) await browser.close();
}
});
app.listen(PORT, () => {
console.log(`🚀 Server running at http://localhost:${PORT}`);
});