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

Использование системы в различных ситуациях, вопросы программирования сценариев.

Модератор: immortal

Аватара пользователя
Amarok
Сообщения: 1409
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 455 раз
Поблагодарили: 125 раз
Контактная информация:

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

Сообщение Amarok » Пт ноя 29, 2013 8:15 am

msh555 писал(а):подсел на прогноз от СИНОПТИКА
А можно код вытаскивания погоды посмотреть?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 138 раз
Контактная информация:

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

Сообщение ErmolenkoM » Пт ноя 29, 2013 9:24 am

BlackWarrior писал(а):А можно код вытаскивания погоды посмотреть?

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

\<div class="description"\>\<h2\>Прогноз погоды в Самаре на сегодня\<\/h2\>: (.+?)\<\/div\>
наверное обратных слешей многовато. Экранировать надо только прямые.
но у меня так :-)
и да. Обновление МЖД должно быть, ибо правилось веб-вар недавно.
aka msh555
Cubian на Cubietruck, Connect
Аватара пользователя
Amarok
Сообщения: 1409
Зарегистрирован: Пт дек 14, 2012 12:24 pm
Откуда: Россия, Нижняя Тура
Благодарил (а): 455 раз
Поблагодарили: 125 раз
Контактная информация:

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

Сообщение Amarok » Пт ноя 29, 2013 10:39 am

msh555 писал(а):
BlackWarrior писал(а):А можно код вытаскивания погоды посмотреть?

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

\<div class="description"\>\<h2\>Прогноз погоды в Самаре на сегодня\<\/h2\>: (.+?)\<\/div\>
наверное обратных слешей многовато. Экранировать надо только прямые.
но у меня так :-)
и да. Обновление МЖД должно быть, ибо правилось веб-вар недавно.
А как температуру выдернуть?
Алиска живёт на Ubuntu Server 14.04.3 LTS
connect, группа в Telegram, Яндекс.Деньги для благодарностей за помощь: 41001355945165
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 138 раз
Контактная информация:

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

Сообщение ErmolenkoM » Пт ноя 29, 2013 3:42 pm

BlackWarrior писал(а):
msh555 писал(а):
BlackWarrior писал(а):А можно код вытаскивания погоды посмотреть?

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

\<div class="description"\>\<h2\>Прогноз погоды в Самаре на сегодня\<\/h2\>: (.+?)\<\/div\>
наверное обратных слешей многовато. Экранировать надо только прямые.
но у меня так :-)
и да. Обновление МЖД должно быть, ибо правилось веб-вар недавно.
А как температуру выдернуть?
Вот так:

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

<p class="today-temp">(.+?)&deg;C<\/p>
Я немного обновил инфу по веб-переменным в Вики. http://smartliving.ru/Main/ModuleWebvars
Открываем страницу для грабежа. -> Просмотр HTML кода -> Находим интересуещие нас значение, далее по Вики
aka msh555
Cubian на Cubietruck, Connect
Аватара пользователя
viris
Сообщения: 89
Зарегистрирован: Вс янв 20, 2013 5:24 pm
Откуда: ДНР Горловка
Благодарил (а): 1 раз
Поблагодарили: 2 раза
Контактная информация:

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

Сообщение viris » Вс дек 01, 2013 2:27 pm

msh555 писал(а):
viris писал(а):Как с этой страницы http://arny.stirol.net/cgi-bin/eco/weat ... /index.php вытянуть все данные
1. Создать веб переменную. http://smartliving.ru/Main/ModuleWebvars
2. Указать сайт. http://arny.stirol.net/cgi-bin/eco/weat ... /index.php
3. Кодировка windows-1251
4. Указать шаблон

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

Радиационный фон<\/th><th width=20><br><\/th><th align=left>(.+?) мкР
5. Связать с переменной в системе.

И так для каждого добываемого параметра. В шаблонах не забудь экранировать прямой слеш.

И еще вопрос. Это погода где?
Украина г.Горловка а данные предоставляет ОАО Концерн Стирол. У них по городу расставлены посты наблюдения. Там ещё много разных параметров есть http://arny.stirol.net/eco/rep.html
immortal
Сообщения: 1118
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 387 раз
Контактная информация:

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

Сообщение immortal » Вс дек 08, 2013 6:24 pm

сайт: http://ru-meteo.ru/vologda

работает:

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

<td class="temp t-?\d+">(.+?)°<\/td>
не работает:

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

<td class=​"leftcol">(.+?)<\/td>
не пойму почему
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
immortal
Сообщения: 1118
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 387 раз
Контактная информация:

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

Сообщение immortal » Пн дек 09, 2013 1:55 pm

проблема с нерабочими регулярными выражениями может быть в следующем, при вставке так же вставляются не отображаемые символы (как показано на рисунке), лечиться так: вставляем, сохраняем, потом открываем редактирование и дважды кликаем на поле с регулярным выражением и видем символы, потом просто их удаляем
Вложения
temp.png
temp.png (164.75 КБ) 16836 просмотров
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
immortal
Сообщения: 1118
Зарегистрирован: Вт янв 29, 2013 9:16 am
Откуда: Белозерск
Благодарил (а): 15 раз
Поблагодарили: 387 раз
Контактная информация:

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

Сообщение immortal » Пн дек 09, 2013 2:15 pm

вот мои регулярные выражения (путь свои города)

Температура Яндекс
http://pogoda.yandex.ru/vologda/
<div class="b-thermometer__now">(.+?) °C<\/div>

Давление Яндекс
http://pogoda.yandex.ru/vologda/
Давление: <\/span>(.+?) мм

Влажность Яндекс
http://pogoda.yandex.ru/vologda/
Влажность: <\/span>(.+?)%

Для http://pogoda.by/
Температура
http://pogoda.by/27037
windows-1251
Температура воздуха (.+?)°C

Скорость ветра
http://pogoda.by/27037
windows-1251
Ветер (.+?) м\/с
Lubuntu на cubieboard2 + ds9490R
DietPi на Orange Pi PC + 1wire на esp8266 с прошивкой Homes-smart.ru
PAV
Сообщения: 924
Зарегистрирован: Пт дек 06, 2013 11:30 am
Откуда: Москва
Благодарил (а): 67 раз
Поблагодарили: 89 раз

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

Сообщение PAV » Вт дек 10, 2013 11:28 am

Прикручиваем погоду Yandex: http://computer-service.pro/smf/index.php?topic=30.0
Код для Москвы:
Сценарий

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

$city_id=27612;
$data_file="http://export.yandex.ru/weather-ng/forecasts/$city_id.xml?".rand(); // адрес xml файла

$xml = simplexml_load_file($data_file); // раскладываем xml на массив

$temp=$xml->fact->temperature;
// Если значение температуры положительно, для наглядности добавляем "+"
if ($temp>0) {$temp='+'.$temp;}
sg("Moscow.Temp",$temp);
sg("Moscow.City",Москва);
sg("Moscow.Type",$xml->fact->weather_type);
sg("Moscow.Pressure",$xml->fact->pressure);
sg("Moscow.Humidity",$xml->fact->humidity);
sg("Moscow.WindSpeed",$xml->fact->wind_speed);
sg("Moscow.Image",$xml->fact->image);
sg("Moscow.UpTime",$xml->fact->uptime);


$dir = $xml->fact->wind_direction;
switch ($dir){
   case 's':
     $dir="южное";
     break;
   case 'n':
     $dir="северное";
     break;
   case 'w':
     $dir="западное";
     break;
   case 'e':
     $dir="восточное";
     break;
   case 'sw':
     $dir="юго-западное";
     break;
   case 'nw':
     $dir="северо-западное";
     break;
   case 'calm':
     $dir="штиль";
     break;
}
sg("Moscow.WindDir",$dir);
sg("Moscow.SunRise",$xml->day[0]->sunrise);
sg("Moscow.SunSet",$xml->day[0]->sunset);
Код Меню управления

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

<div align="center"><font size="5" color="brown" face="Arial"><b>Погода Yandex</b></font></div><br><br>
<img src="http://img.yandex.net/i/wiz%Moscow.Image%.png" alt="%Moscow.Type%" title="%Moscow.Type%"> %Moscow.Type% <font size="5" color="brown" face="Arial">%Moscow.Temp%</font><sup>o</sup>C<br>
Давление  <font size="5" color="brown" face="Arial">%Moscow.Pressure%</font> мм.рт.ст<br>
Влажность <font size="5" color="brown" face="Arial">%Moscow.Humidity%</font> %<br>
Скорость ветра <font size="5" color="brown" face="Arial">%Moscow.WindSpeed%</font>  м/с %Moscow.WindDir%<br>
<b>Восход солнца <font size="5" color="brown" face="Arial">%Moscow.SunRise%</font></b><br>
<b>Заход солнца <font size="5" color="brown" face="Arial">%Moscow.SunSet%</font></b><br><br>
<b>Последнее обновление <font size="3" color="brown" face="Arial">%Moscow.UpTime%</font></b><br><br>
За это сообщение автора PAV поблагодарили (всего 3):
mirsum (Вт дек 23, 2014 2:40 pm) • Amarok (Ср мар 11, 2015 11:20 am) • Bagir (Пн мар 16, 2015 3:36 pm)
Рейтинг: 3.57%
ErmolenkoM
Сообщения: 560
Зарегистрирован: Ср сен 04, 2013 10:31 am
Откуда: Самара
Благодарил (а): 99 раз
Поблагодарили: 138 раз
Контактная информация:

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

Сообщение ErmolenkoM » Вт дек 10, 2013 2:38 pm

PAV писал(а):

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

$city_id=27612;
$data_file="http://export.yandex.ru/weather-ng/forecasts/$city_id.xml?".rand(); // адрес xml файла
А можно вопрос? Как это работает? То есть:
1. Как значение переменной попадает внутрь строковой константы?
2. Зачем get-параметр - случайное число?

И самое странное, что код работает, у самого такой, но как?

UPDATE: RND для того, что бы избежать кеширования.
Последний раз редактировалось ErmolenkoM Чт ноя 06, 2014 7:48 am, всего редактировалось 1 раз.
aka msh555
Cubian на Cubietruck, Connect
Ответить