46 lines
1.5 KiB
JavaScript
46 lines
1.5 KiB
JavaScript
const puppeteer = require('puppeteer-core');
|
|
|
|
const EDGE_PATH = 'C:\\Program Files (x86)\\Microsoft\\Edge\\Application\\msedge.exe';
|
|
|
|
async function run() {
|
|
console.log('Launching headless browser...');
|
|
const browser = await puppeteer.launch({
|
|
executablePath: EDGE_PATH,
|
|
headless: 'new',
|
|
args: ['--no-sandbox', '--disable-setuid-sandbox', '--disable-blink-features=AutomationControlled']
|
|
});
|
|
|
|
const page = await browser.newPage();
|
|
|
|
console.log('Navigating to Waze Live Map...');
|
|
await page.goto('https://www.waze.com/live-map/directions?lat=37.7749&lng=-122.4194', {
|
|
waitUntil: 'networkidle2',
|
|
timeout: 20000
|
|
});
|
|
|
|
console.log('Evaluating in-page Waze alerts fetch...');
|
|
const inPageResult = await page.evaluate(async () => {
|
|
try {
|
|
const res = await fetch('https://www.waze.com/live-map/api/georss?top=37.82&bottom=37.72&left=-122.48&right=-122.36&env=na&types=alerts', {
|
|
headers: {
|
|
'Accept': 'application/json, text/plain, */*',
|
|
}
|
|
});
|
|
const data = await res.json();
|
|
return { status: res.status, alerts: data.alerts || [] };
|
|
} catch (e) {
|
|
return { error: e.message };
|
|
}
|
|
});
|
|
|
|
console.log('STATUS:', inPageResult.status);
|
|
console.log('ALERTS FOUND:', inPageResult.alerts ? inPageResult.alerts.length : inPageResult.error);
|
|
if (inPageResult.alerts && inPageResult.alerts.length > 0) {
|
|
console.log('First 3 alerts:', JSON.stringify(inPageResult.alerts.slice(0, 3), null, 2));
|
|
}
|
|
|
|
await browser.close();
|
|
}
|
|
|
|
run().catch(console.error);
|