Skip to content

Instantly share code, notes, and snippets.

@guillaumeguerin
Last active August 20, 2018 09:32
Show Gist options
  • Select an option

  • Save guillaumeguerin/d7c71a7a7e5bd703fb0550ed3f6379af to your computer and use it in GitHub Desktop.

Select an option

Save guillaumeguerin/d7c71a7a7e5bd703fb0550ed3f6379af to your computer and use it in GitHub Desktop.
// Use with : node worldweather.js > weather_europe_`date '+%Y_%m_%d_%H_%M'`.csv
'use strict';
const puppeteer = require('puppeteer');
const fs = require('fs');
const https = require('https');
(async() => {
const browser = await puppeteer.launch({
headless: true
});
const page = await browser.newPage();
page.on('console', msg => {
var message = msg._text;
if(message.startsWith("#")) {
console.log(message.replace("#",""));
}
});
await page.goto('https://www.timeanddate.com/weather/?continent=europe', {waitUntil: 'networkidle2'});
await page.evaluate(_ => {
var cityName = "";
var weather = "";
var temperature = "";
var rows = document.getElementsByTagName("tbody")[0].getElementsByTagName("tr");
for(i=0; i<rows.length; i++) {
cityName = rows[i].children[0].innerText.replace(" *","");
weather = rows[i].children[2].children[0].getAttribute("alt");
temperature = rows[i].children[3].innerText.replace(" °C","");
console.log("#" + cityName + ";" + weather + ";" + temperature);
}
});
browser.close();
})();
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment