Страница 13 из 15

Re: Как погоду настроить

Добавлено: Пт май 20, 2016 9:14 am
Amarok
Gismeteo?

Re: Как погоду настроить

Добавлено: Пт май 20, 2016 3:41 pm
Bagir
Добрался и я до погоды. Думал что то сломалось. И верно, сначала через раз, а последнее время вообще не даёт погоду. Жаль, очень удобно было. Зажмотили нам похоже сервис Яндекса.

Re: Как погоду настроить

Добавлено: Пт май 20, 2016 3:44 pm
DiArt
Bagir писал(а):Добрался и я до погоды. Думал что то сломалось. И верно, сначала через раз, а последнее время вообще не даёт погоду. Жаль, очень удобно было. Зажмотили нам похоже сервис Яндекса.
Посмотрите тут http://majordomo.smartliving.ru/forum/v ... &start=120 В конце есть на текущий момент рабочий скрипт забора погоды с яндекса.
Правда только на текущий момент.

Re: Как погоду настроить

Добавлено: Вс май 22, 2016 11:02 pm
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>

Re: Как погоду настроить

Добавлено: Пн май 23, 2016 12:32 pm
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>

Re: Как погоду настроить

Добавлено: Пн май 23, 2016 3:16 pm
Bagir
DiArt, спасибо! Я было подумал, что export.yandex.ru вообще прекратил работу. А он ушел на https. А заодно и переделали всё в xml ответе. Вчера на основные данные настроился. Сегодня надо будет до ума довести.

Re: Как погоду настроить

Добавлено: Пн май 23, 2016 4:02 pm
PAV
Я перенастроился, спасибо. Единственное, не все данные, что были раньше передает.

Re: Как погоду настроить

Добавлено: Пн май 23, 2016 4:53 pm
71Gavrik71
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>
Огромное спасибо!!!
Только теперь веб цикл постоянно падает)

Re: Как погоду настроить

Добавлено: Вт май 24, 2016 2:07 am
Bagir
я бы всё же порекомендовал читать xml. Там есть эти данные. Работает очень стабильно.

Re: Как погоду настроить

Добавлено: Ср май 25, 2016 10:10 am
Amarok
В общем у меня такой сценарий:
SPOILERSPOILER_SHOW

Код: Выделить всё

$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);} 
Значение $url я получил после регистрации на сайте Gismeteo. Для этого надо написать письмо на [email protected] и попросить предоставить доступ к прогнозу погоды в xml-формате. Мне ответила любезная девушка, задала пару вопросов, выслала анкету (её надо заполнить) и - через некоторое время - у меня появился свой прогноз.

Приношу благодарности:
[*] сайту Gismeteo за предоставленный доступ к погодным данным на мой город
[*] менеджеру Gismeteo Валерии Сердюк за её терпение
[*] пользователю нашего форума m-malva за его код из которого я надёргал некоторые кусочки/идеи