|
|
|
| На сайте 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>
|
| |
|
|
|
|
|
|
|
для: st.Ass
(12.09.2006 в 21:11)
| | Да, это реально, возможно вас заинтересует тема по ссылке http://www.softtime.ru/forum/read.php?id_forum=6&id_theme=13533. | |
|
|
|
|
|
|
|
для: cheops
(12.09.2006 в 21:41)
| | cheops и targa огромное спасибо:) буду пытаться:) | |
|
|
|
|
|
|
|
для: st.Ass
(12.09.2006 в 21:11)
| | Можно.
Пишете парсер ихнего RSS. Вас должны интересовать прежде всего
<title> - там дата/время указаны
и
<description> - там описание погоды
разбираете в каждом item'e эти два тега и информацию из них заносите в БД (перед этим проверяете не было ли записи за дату/время указанные в title в БД).
Скрипт вешаете на хостинг и через cron периодически его вызываете.
Ну вот примерно так :) | |
|
|
|
|
|
|
|
для: 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/html; charset=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();
?>
|
| |
|
|
|