Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Погода: rss + php + mysql
 
 автор: st.Ass   (12.09.2006 в 21:11)   письмо автору
 
 

На сайте gismeteo.ru есть возможность получать прогноз погоды и прочие данные при помощи rss. Возникла идея - собрать статистику за некоторое время (температура днем вечером, ночью, давление, осадки, сила и направление ветера и т.д.), а потом на основе этой статистики строить всевозможные графики... Итак, задача -
Брать с сайта, каждый день, через rss эти данные и заносить в бд. Процесс желательно автоматизировать. Вопрос - возможно ли такое сделать?:) И как если да?:)

Пример rss файлаика с gismeteo.ru
http://informer.gismeteo.ru/rss/27612.xml

<?xml version="1.0" encoding="windows-1251" ?> 
- <rss xmlns:gismeteo="http://www.gismeteo.ru" version="2.0">
- <channel>
  <title>GISMETEO.RU: Погода от ФОБОС и Мэп Мейкер</title> 
  <link>http://www.gismeteo.ru</link> 
  <description>Прогноз погоды по 2200+ городам России и Мира</description> 
  <ttl>60</ttl> 
- <image>
  <title>GISMETEO.RU: Погода от ФОБОС и Мэп Мейкер</title> 
  <width>142</width> 
  <height>18</height> 
  <link>http://www.gismeteo.ru</link> 
  <url>http://img.gismeteo.ru/images/gismeteo2.gif</url> 
  </image>
- <item>
  <title>Москва: День 12 сен, Вт</title> 
  <link>http://www.gismeteo.ru/towns/27612.htm?1000000</link> 
  <description>пасмурно, без осадков, температура +17..+19 С, давление 749..751 мм рт.ст., ветер Северо-Западный, 4 м/с</description> 
  <category>Погода</category> 
  <enclosure url="http://img.gismeteo.ru/images/cloud.gif" /> 
  <source>http://informer.gismeteo.ru/rss/27612.xml</source> 
  </item>
- <item>
  <title>Москва: Вечер 12 сен, Вт</title> 
  <link>http://www.gismeteo.ru/towns/27612.htm?1003137</link> 
  <description>пасмурно, без осадков, температура +12..+14 С, давление 750..752 мм рт.ст., ветер Западный, 2 м/с</description> 
  <category>Погода</category> 
  <enclosure url="http://img.gismeteo.ru/images/moond.gif" /> 
  <source>http://informer.gismeteo.ru/rss/27612.xml</source> 
  </item>
- <item>
  <title>Москва: Ночь 13 сен, Ср</title> 
  <link>http://www.gismeteo.ru/towns/27612.htm?1086104</link> 
  <description>пасмурно, без осадков, температура +10..+12 С, давление 749..751 мм рт.ст., ветер Западный, 3 м/с</description> 
  <category>Погода</category> 
  <enclosure url="http://img.gismeteo.ru/images/moond.gif" /> 
  <source>http://informer.gismeteo.ru/rss/27612.xml</source> 
  </item>
- <item>
  <title>Москва: Утро 13 сен, Ср</title> 
  <link>http://www.gismeteo.ru/towns/27612.htm?1020258</link> 
  <description>облачно, без осадков, температура +11..+13 С, давление 748..750 мм рт.ст., ветер Западный, 3 м/с</description> 
  <category>Погода</category> 
  <enclosure url="http://img.gismeteo.ru/images/suncl.gif" /> 
  <source>http://informer.gismeteo.ru/rss/27612.xml</source> 
  </item>
  </channel>
  </rss>


Или данные брать из такого вот информера:

<script> var gminform_fc="000000", gminform_bc="FFFFFF"; </script>
<script language="JavaScript" src="http://informer.gismeteo.ru/text/27612-1.JS"></script>

   
 
 автор: cheops   (12.09.2006 в 21:41)   письмо автору
 
   для: st.Ass   (12.09.2006 в 21:11)
 

Да, это реально, возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=13533.

   
 
 автор: st.Ass   (13.09.2006 в 18:34)   письмо автору
 
   для: cheops   (12.09.2006 в 21:41)
 

cheops и targa огромное спасибо:) буду пытаться:)

   
 
 автор: targa   (12.09.2006 в 21:44)   письмо автору
 
   для: st.Ass   (12.09.2006 в 21:11)
 

Можно.
Пишете парсер ихнего RSS. Вас должны интересовать прежде всего
<title> - там дата/время указаны
и
<description> - там описание погоды
разбираете в каждом item'e эти два тега и информацию из них заносите в БД (перед этим проверяете не было ли записи за дату/время указанные в title в БД).
Скрипт вешаете на хостинг и через cron периодически его вызываете.
Ну вот примерно так :)

   
 
 автор: st.Ass   (13.09.2006 в 21:01)   письмо автору
 
   для: targa   (12.09.2006 в 21:44)
 

Все получилось, всем спасибо.
Вот пример, если кому-нибудь будет надо....


<?
require_once("config.php");
  
$text file_get_contents("http://informer.gismeteo.ru/xml/27612_1.xml");
  
$pattern "|<FORECAST day=\"([\d]+)\" month=\"([\d]+)\" year=\"([\d]+)\" hour=\"([\d]+)\" tod=\"([\d]+)\" predict=\"([\d]+)\"
 
$text = preg_match_all($pattern$text$out);
echo '<html><head><meta http-equiv="
Content-Type" content="text/htmlcharset=koi8r"></head>';
  for(
$i = 0; $i < count($out[0]); $i++)
  {
    echo "
<b>".$out[1][$i].".".$out[2][$i].".".$out[3][$i]."</b><br>";
    echo "
Давление ".$out[8][$i]." ... ".$out[9][$i]."<br>";
    echo "
Температура ".$out[10][$i]." ... ".$out[11][$i]."<br>";
    echo "
Ветер ".$out[12][$i]." ... ".$out[13][$i]." (направление ".$out[14][$i].")<br><br>";

// pishem v peremennie, 4tob potom udobney pisat' zapros k db
$temp_date=$out[1][$i].".".$out[2][$i].".".$out[3][$i];
$temp_pres=$out[8][$i]."...".$out[9][$i];
$temp_temp=$out[10][$i]."...".$out[11][$i];
$temp_wind=$out[12][$i]."...".$out[13][$i];
$temp_direc=$out[14][$i];

// pishem v bazu
$query="INSERT INTO pogoda VALUES('0','$temp_date','$temp_pres','$temp_temp','$temp_wind','$temp_direc')";
$res=mysql_query($query);
if(!
$res) echo mysql_error();
?>

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования