Соскоб температуры и влажности с Cheerio

Я пытался очистить следующую веб-страницу с помощью cheerio, чтобы получить последние данные о температуре и влажности для небольшого моего проекта: ссылка на веб-сайт

К сожалению, мне кажется, что мне приходится копаться во многих тегах, и я не могу найти дорогу. Я пытался проверить элемент, чтобы увидеть его путь CSS, но это не помогло. Я попробовал следующий код (он основан на селекторе css, который я получаю, когда проверяю элемент):

setInterval(function getTempAndHumidity() 
{
    var url = 
    {
        url: "http://www.meteociel.fr/temps-reel/obs_villes.php?code2=7630",
        method: 'GET',
        proxy: webproxy
    };

    request(url, function (error, response, body) 
    {
        if (!error && response.statusCode == 200) 
        {
            $ = cheerio.load(body);           
            console.log($('tr.texte > td:nth-child(2) > table:nth-child(2) > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(1) > table:nth-child(1) > tbody:nth-child(1) > tr:nth-child(1) > td:nth-child(1) > center:nth-child(18) > table:nth-child(3) > tbody:nth-child(1) > tr:nth-child(2) > td:nth-child(5) > div:nth-child(1)').html());
        }
        else
        {
            console.log("Error when getting the temperature and humidity rate: " + error);
        }
    })
}, 2000);

Я просто получаю "ноль", так что это не похоже на работу.

Было бы огромной помощью, если бы кто-то мог помочь мне в этом вопросе!

заранее спасибо

1 ответ

Так что я нашел способ обойти мою проблему. Но это ОЧЕНЬ некрасиво. Я хотел бы найти более элегантный способ сделать это!

$ = cheerio.load(body);
var content = $('h1').parent().nextAll().nextAll().next().text();
var catch_values = content.match(/.*km\s+(\d+\.\d+).*(\d\d)%.*/);
var temp = catch_values[1];
var humid_rate = catch_values[2];

Любая помощь, совет или вклад приветствуются!

Другие вопросы по тегам