Как погоду настроить
Модератор: immortal
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Как погоду настроить
Добрался и я до погоды. Думал что то сломалось. И верно, сначала через раз, а последнее время вообще не даёт погоду. Жаль, очень удобно было. Зажмотили нам похоже сервис Яндекса.
-
- Сообщения: 210
- Зарегистрирован: Пт апр 12, 2013 2:27 pm
- Откуда: Уфа
- Благодарил (а): 28 раз
- Поблагодарили: 16 раз
Re: Как погоду настроить
Посмотрите тут http://majordomo.smartliving.ru/forum/v ... &start=120 В конце есть на текущий момент рабочий скрипт забора погоды с яндекса.Bagir писал(а):Добрался и я до погоды. Думал что то сломалось. И верно, сначала через раз, а последнее время вообще не даёт погоду. Жаль, очень удобно было. Зажмотили нам похоже сервис Яндекса.
Правда только на текущий момент.
- Рейтинг: 2.33%
Система на Неттоп 3Q Nettop Qoo!
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
(Intel Celeron J1800, 2x2410 МГц, 4096 Мб, HDD 1000 Гб, HDMI, VGA , Wi-Fi, Ethernet, Ubuntu 14.04.2)
Вторая система на Raspberry Pi 3.
D-Link DCS-930L/Broadlink RM2-Pro/BroadLink SP3 CC/Ginzzu HS-K07W
Я в CONNECT
- 71Gavrik71
- Сообщения: 54
- Зарегистрирован: Сб май 21, 2016 2:04 pm
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Как погоду настроить
Уважаемые гуру, не могли бы помочь достать время захода с гисметио)))
ссылка https://www.gismeteo.ru/city/daily/4392/
код:
<div class="astronomy_item">
<span class="astronomy_title">Заход</span>
<b class="astronomy_value">20:41</b>
</div>
Все что удалось достать мне это: <b class="astronomy_value">20:41, вот таким шаблоном: Заход<\/span>(.+?)<\/b>
ссылка https://www.gismeteo.ru/city/daily/4392/
код:
<div class="astronomy_item">
<span class="astronomy_title">Заход</span>
<b class="astronomy_value">20:41</b>
</div>
Все что удалось достать мне это: <b class="astronomy_value">20:41, вот таким шаблоном: Заход<\/span>(.+?)<\/b>
-
- Сообщения: 366
- Зарегистрирован: Пт июл 26, 2013 4:11 pm
- Благодарил (а): 71 раз
- Поблагодарили: 18 раз
Re: Как погоду настроить
вот:71Gavrik71 писал(а):Уважаемые гуру, не могли бы помочь достать время захода с гисметио)))
ссылка https://www.gismeteo.ru/city/daily/4392/
код:
<div class="astronomy_item">
<span class="astronomy_title">Заход</span>
<b class="astronomy_value">20:41</b>
</div>
Все что удалось достать мне это: <b class="astronomy_value">20:41, вот таким шаблоном: Заход<\/span>(.+?)<\/b>
Заход.+?value">(.+?)<\/b>
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Как погоду настроить
DiArt, спасибо! Я было подумал, что export.yandex.ru вообще прекратил работу. А он ушел на https. А заодно и переделали всё в xml ответе. Вчера на основные данные настроился. Сегодня надо будет до ума довести.
- За это сообщение автора Bagir поблагодарил:
- 71Gavrik71 (Пн май 23, 2016 4:52 pm)
- Рейтинг: 1.16%
-
- Сообщения: 968
- Зарегистрирован: Пт дек 06, 2013 11:30 am
- Откуда: Москва
- Благодарил (а): 71 раз
- Поблагодарили: 95 раз
Re: Как погоду настроить
Я перенастроился, спасибо. Единственное, не все данные, что были раньше передает.
- 71Gavrik71
- Сообщения: 54
- Зарегистрирован: Сб май 21, 2016 2:04 pm
- Благодарил (а): 9 раз
- Поблагодарили: 1 раз
Re: Как погоду настроить
Огромное спасибо!!!ILGAS писал(а):вот:71Gavrik71 писал(а):Уважаемые гуру, не могли бы помочь достать время захода с гисметио)))
ссылка https://www.gismeteo.ru/city/daily/4392/
код:
<div class="astronomy_item">
<span class="astronomy_title">Заход</span>
<b class="astronomy_value">20:41</b>
</div>
Все что удалось достать мне это: <b class="astronomy_value">20:41, вот таким шаблоном: Заход<\/span>(.+?)<\/b>
Заход.+?value">(.+?)<\/b>
Только теперь веб цикл постоянно падает)
- Bagir
- Сообщения: 1615
- Зарегистрирован: Вт сен 17, 2013 6:46 pm
- Откуда: Ярославская область город Углич
- Благодарил (а): 212 раз
- Поблагодарили: 375 раз
Re: Как погоду настроить
я бы всё же порекомендовал читать xml. Там есть эти данные. Работает очень стабильно.
- Amarok
- Сообщения: 1427
- Зарегистрирован: Пт дек 14, 2012 12:24 pm
- Откуда: Россия, Нижняя Тура
- Благодарил (а): 460 раз
- Поблагодарили: 126 раз
- Контактная информация:
Re: Как погоду настроить
В общем у меня такой сценарий:
Значение $url я получил после регистрации на сайте Gismeteo. Для этого надо написать письмо на data@gismeteo.ru и попросить предоставить доступ к прогнозу погоды в xml-формате. Мне ответила любезная девушка, задала пару вопросов, выслала анкету (её надо заполнить) и - через некоторое время - у меня появился свой прогноз.
Приношу благодарности:
[*] сайту Gismeteo за предоставленный доступ к погодным данным на мой город
[*] менеджеру Gismeteo Валерии Сердюк за её терпение
[*] пользователю нашего форума m-malva за его код из которого я надёргал некоторые кусочки/идеи
СпойлерПоказать
Код: Выделить всё
$url = "";
$xml = simplexml_load_file($url);
$city = "NTuraGismeteo";
$name = $xml->location['name']; if(gg($city.".name")!=$name){sg($city.".name",$name);}
$name_r = $xml->location['name_r']; if(gg($city.".name_r")!=$name_r){sg($city.".name_r",$name_r);}
$durm = $xml->location->day[0]['durm']; if(gg($city.".durm")!=$durm){sg($city.".durm",$durm);}
$tmin = $xml->location->day[0]['tmin']; if(gg($city.".tmin")!=$tmin){sg($city.".tmin",$tmin);}
$tmax = $xml->location->day[0]['tmax']; if(gg($city.".tmax")!=$tmax){sg($city.".tmax",$tmax);}
if($tmin>0){$tmin="+".$tmin;} if($tmax>0){$tmax="+".$tmax;}
$pmin = $xml->location->day[0]['pmin']; if(gg($city.".pmin")!=$pmin){sg($city.".pmin",$pmin);}
$pmax = $xml->location->day[0]['pmax']; if(gg($city.".pmax")!=$pmax){sg($city.".pmax",$pmax);}
$wsmin = $xml->location->day[0]['wsmin']; if(gg($city.".wsmin")!=$wsmin){sg($city.".wsmin",$wsmin);}
$wsmax = $xml->location->day[0]['wsmax']; if(gg($city.".wsmax")!=$wsmax){sg($city.".wsmax",$wsmax);}
$hummin = $xml->location->day[0]['hummin']; if(gg($city.".hummin")!=$hummin){sg($city.".hummin",$hummin);}
$hummax = $xml->location->day[0]['hummax']; if(gg($city.".hummax")!=$hummax){sg($city.".hummax",$hummax);}
$cl = $xml->location->day[0]['cl']; if(gg($city.".cl")!=$cl){sg($city.".cl",$cl);}
$pt = $xml->location->day[0]['pt']; if(gg($city.".pt")!=$pt){sg($city.".pt",$pt);}
$pr = $xml->location->day[0]['pr']; if(gg($city.".pr")!=$pr){sg($city.".pr",$pr);}
$ts = $xml->location->day[0]['ts']; if(gg($city.".ts")!=$ts){sg($city.".ts",$ts);}
$descr = $xml->location->day[0]['descr']; if(gg($city.".descr")!=$descr){sg($city.".descr",$descr);}
$grademax = $xml->location->day[0]['grademax']; if(gg($city.".grademax")!=$grademax){sg($city.".grademax",$grademax);}
$today = "Сегодня ".$name_r." ".$tmin."° — ".$tmax."°. ".$descr.". ";
//Сегодня утром
if ($xml->location->day[0]->forecast['tod'] == 1){
$t = $xml->location->day[0]->forecast->values['t'];
if($t>0){$t="+".$t;}
$descr = $xml->location->day[0]->forecast->values['descr'];
$today_morning = "Утром до ".$t."°. ".$descr.". ";
}
//Сегодня днем
if ($xml->location->day[0]->forecast['tod'] == 2){
$t = $xml->location->day[0]->forecast->values['t'];
if($t>0){$t="+".$t;}
$descr = $xml->location->day[0]->forecast->values['descr'];
$today_day = "Днём до ".$t."°. ".$descr.". ";
}
//Сегодня вечером
if ($xml->location->day[0]->forecast['tod'] == 3){
$t = $xml->location->day[0]->forecast->values['t'];
if($t>0){$t="+".$t;}
$descr = $xml->location->day[0]->forecast->values['descr'];
$today_evening = "Вечером до ".$t."°. ".$descr.". ";
}
//Сегодня ночью
if ($xml->location->day[1]->forecast['tod'] == 0){
$t = $xml->location->day[1]->forecast->values['t'];
if($t>0){$t="+".$t;}
$descr = $xml->location->day[1]->forecast->values['descr'];
$today_night = "Ночью до ".$t."°. ".$descr.".";
}
$forecast = $today.$today_morning.$today_day.$today_evening.$today_night;
if(gg($city.".forecast")!=$forecast){sg($city.".forecast",$forecast);}
//Завтра
$tmin = $xml->location->day[1]['tmin'];
$tmax = $xml->location->day[1]['tmax'];
$descr = $xml->location->day[1]['descr'];
if($tmin>0){$tmin="+".$tmin;}
if($tmax>0){$tmax="+".$tmax;}
$tomorrow = "Завтра "." ".$tmin."° — ".$tmax."°. ".$descr.". ";
//Завтра ночью
if ($xml->location->day[2]->forecast['tod'] == 0){
$t = $xml->location->day[2]->forecast->values['t'];
if($t>0){$t="+".$t;}
$descr = $xml->location->day[2]->forecast->values['descr'];
$tomorrow_night = "Завтра ночью до ".$t."°. ".$descr.".";
}
$forecastTomorrow = $tomorrow.$tomorrow_night;
if(gg($city.".forecastTomorrow")!=$forecastTomorrow){sg($city.".forecastTomorrow",$forecastTomorrow);}
Приношу благодарности:
[*] сайту Gismeteo за предоставленный доступ к погодным данным на мой город
[*] менеджеру Gismeteo Валерии Сердюк за её терпение
[*] пользователю нашего форума m-malva за его код из которого я надёргал некоторые кусочки/идеи
Моя Алиска живёт на Proxmox в Debian 12