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

12
kolobok74
На сайте с 29.01.2006
Offline
267
12278

Здравствуйте, необходимо парсить погоду с GISMETEO. Не банальные информеры, как тут, а именно выводить таблички на произвольное число дней, со своими картинками и т.д. Чувствую, для этого необходимо применить вот это, но как именно это сделать - не пойму.

Кто поможет?

kil
На сайте с 03.04.2006
Offline
84
kil
#1

Нужно написать обработчик xml например на php и выводить нужные данные.

Вам погода только для одного города нужна?

kolobok74
На сайте с 29.01.2006
Offline
267
#2

kil, Да, только для одного.

Чтоб на одной странице, погода на 3 дня, на другой - на 5 дней и т.д.

kil
На сайте с 03.04.2006
Offline
84
kil
#3

чего-то я на три и пять дней xml не нашел

kil добавил 01.07.2008 в 14:25

выводить вы как собираетесь?

dex
На сайте с 14.04.2006
Offline
231
dex
#4

если оплатили гисметео их xml - то проще простого - xmlparser на php, например, в базу - а вывод уже из нее ....

в чем проблема?

губит людей вода (подпись не продаю, в долг не даю)
kolobok74
На сайте с 29.01.2006
Offline
267
#5

Почему-то я считал, что они в xml и на несколько дней отдают. Ошибся.

Тогда наверно удобнее, чтоб при помощи регулярных выражений парсилась непосредственно страница с соответствующим прогнозом, бралась из неё табличка, приделывалась ссылка, откуда взято и выводилась на моём сайте.

HC
На сайте с 24.05.2006
Offline
46
#6

можно также написать XSL-шаблон и обработать им XML или как сказали выше распарсить XML и вручную вывести.

Система управления сайтом HostCMS (http://www.HostCMS.ru) - многосайтовость, множество модулей, обмен с 1С, бесплатная версия. Скидка 40% на систему управления для дилеров (http://www.hostcms.ru/partners/partnership/) и 20% для партнеров-фрилансеров (http://www.hostcms.ru/partners/freelance/).
kil
На сайте с 03.04.2006
Offline
84
kil
#7

Кстати бесплатно вроде можно на meteoinfo погоду брать на несколько дней вперед

LEOnidUKG
На сайте с 25.11.2006
Offline
1773
#8

function grab_gismeteo()

{
$replace = array (
"День", '<div id="dden"><b>День',
"Вечер", '<div id="dvecher"><b>Вечер',
"Ночь", '<div id="dnoch"><b>Ночь',
"Утро", '<div id="dutro"><b>Утро',
"Усть-Каменогорск: ", "",
"температура ", "температура <b>",
" С,", "</b> &deg;C,",
"малооблачно", "переменная облачность",
"Пн", "понедельник",
"Вт", "вторник",
"Ср", "среда",
"Чт", "четверг",
"Пт", "пятница",
"Сб", "Суббота",
"Вс", "Воскресенье",

"янв", "января",
"фев", "февраля",
"мар", "марта",
"апр", "апреля",
"май", "мая",
"июн", "июня",
"июл", "июля",
"авг", "августа",
"сен", "сентября",
"окт", "октября",
"ноя", "ноября",
"дек", "декабря"
);


$logfile = "weather3.txt";
$contents = '';

$filename = "http://informer.gismeteo.ru/rss/36403.xml";
//$filename = "gismeteo-rss.txt";

$fp = fopen ( $filename, "r" );

if ( $fp )
{
while (!feof($fp))
$contents .= fread($fp, 8192);
fclose ( $fp );

for ( $i=0; $i<23; $i++ )
$contents = str_replace( $replace[$i*2] , $replace[$i*2+1], $contents );

//$weather = explode ( "<item>", $contents );

//echo $weather[1]."<br>".$weather[2]."<br>".$weather[3]."<br>".$weather[4]."<br>";

$re="/<title>(.*?)<\/title>/si";
preg_match_all ( $re, $contents, $tlt );

$re="/<description>(.*?)<\/description>/si";
preg_match_all ( $re, $contents, $desc );

$contents = "<p>";

for ($i=0;$i<4;$i++)
{
$img = "";
$icons = array (
"дождь", "wiz1.png",
"снег", "wiz2.png",
"облачно,", "wiz5.png",
"перемен", "wiz6.png",
"гроз", "wiz8.png",
"ясн","wiz7.png",
"пасмурно", "wiz5.png"
);

for ( $j=0; $j<7; $j++ )
if ( strstr ( $desc[1][$i+1], $icons[$j*2] ) )
$img .= '<img src="../shablon/'.$icons[$j*2+1].'">';

$contents .= $tlt[1][$i+2]."</b><br>".$desc[1][$i+1].$img."</div>";
}

$contents .= "<br><br></p>";

//echo $contents;

$f = fopen($logfile,"w+");
if ($f)
{
fwrite($f,$contents);
fclose($f);
}
else{echo "fopen error for gismeteo\n";}
}
}

файлик с погодой будет weather3.txt на него нужно 777 выставить в правах

✅ Мой Телеграм канал по SEO, оптимизации сайтов и серверов: https://t.me/leonidukgLIVE ✅ Качественное и рабочее размещение SEO статей СНГ и Бурж: https://getmanylinks.ru/ ✅ Настройка и оптимизация серверов https://getmanyspeed.ru/
[Удален]
#9

ребята а не т ни у кого базы хотябы не большой, следующего типа:

IP>Город>ID GisMeteo

kolobok74
На сайте с 29.01.2006
Offline
267
#10

LEOnidUKG, спасибо, именно этот скрипт пробовал.

Не заработало.

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий