NEWS
Парсер погоды
-
Помогите с адаптацией скрипта из MD:
Собственно парсинг страницы, в MD это называют "веб-переменные"
Шаблон поиска: Прогноз погоды в Самаре на сегодня</span>: (.+?)</div>
на выходе имеем, например: Объект.Свойство: "Небо днем затянуло облаками, и вечером погода будет оставаться пасмурной. Без осадков. "
Кстати, более лаконичного сервиса погоды я не встречал. очень хорошо воспринимается, когда голосом озвучивает :-)
Вообще про тему парсинга вебстраницы просветите, плз…
-
Помогите с адаптацией скрипта из MD:
Собственно парсинг страницы, в MD это называют "веб-переменные"
Шаблон поиска: Прогноз погоды в Самаре на сегодня</span>: (.+?)</div>
на выходе имеем, например: Объект.Свойство: "Небо днем затянуло облаками, и вечером погода будет оставаться пасмурной. Без осадков. "
Кстати, более лаконичного сервиса погоды я не встречал. очень хорошо воспринимается, когда голосом озвучивает :-)
Вообще про тему парсинга вебстраницы просветите, плз… `
Вот скрипт для примера http://forum.iobroker.net/viewtopic.php?f=26&t=1281Так же есть драйвер для парсинга https://github.com/ioBroker/ioBroker.parser
-
извиняюсь за свою тупизну… на словах все понятно,...
на конкретно моем примере можно научить? ... :-) `
Ну ты прям хочешь готовое решение….! ````
createState('pogoda','');
! var request = require('request');
getForecast();
! function getForecast() {
request ('https://sinoptik.com.ru/погода-самара-100499099', function (error, response, body) {
// Получаем ответ
if (!error && response.statusCode == 200) {
// Парсим данные
var desc = body.match(/</span>:(.*?</div>)./);
! log('desc = ' +JSON.stringify(desc));
// Если данные существуют, то обрабатываем
if (desc) {
desc = desc[0].toString();
var result = desc.replace(": ", "").replace(" ", "");
log('result = ' +JSON.stringify(result));
setState('pogoda', result);
}
}
});
}
! // Запускаем в 45 минут через 2 часа
on({time: "45 */2 * * *"}, getForecast);Это один из вариантов. [https://regex101.com](https://regex101.com)в помощь. -
Если установишь драйвер Parser то в него нужно добавить регулярку:
\<\/span\>:(.*?<\/div>)Указать ссылку откуда парсить и интервал обновления.

После чего в обьектах можно увидеть значение:

Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login