
07.01.2010, 05:43
|
|
Постоянный
Регистрация: 05.12.2004
Сообщений: 647
С нами:
11278406
Репутация:
818
|
|
Сообщение от m0Hze
Код:
http://wap.gismeteo.ru/gm/normal/node/prognoz_week/6/?field_wmo=2778&field_index=2778&sd_field_date=gen_past_date_0&ed_field_date=gen_past_date_-6&field_tod=2
Нужно сграбить: Полную дату, состояние(ветренно,пасмурн о...),и градусы.Весь мозг пере*бал,но там какой то символ нечитаемый 
Вот грубо, на скорую руку:
PHP код:
<?php
$fp = file_get_contents('http://wap.gismeteo.ru/gm/normal/node/prognoz_week/6/?field_wmo=2778&field_index=2778&sd_field_date=gen_past_date_0&ed_field_date=gen_past_date_-6&field_tod=2');
################################################ ПАРСИМ
# Ясность неба #
if(preg_match_all('#<div style="font-size: 9px; padding: 0 0 3px 0; font-family: tahoma;">(.*)</div>#Uis',$fp,$osadki)) {
$osadki = array_map('strip_tags', $osadki[1]);
$osadki = array_map('trim', $osadki);
}
# Цельсий #
preg_match_all('#<span style="color: (darkblue|\#cc0000);">(.*)</span>#',$fp,$cel);
# День #
if(preg_match_all('#<a href="/gm/normal/node/prognoz_day/6/\?field_wmo=.*">(.*)</a>#Uis',$fp,$day)) {
$count = count($day[1]);
for ($i=0;$i < $count; $i++) {
$days[] = strip_tags($day[1][$i]);
$i++;
}
}
################################################ НАПАРСИЛИСЬ
for ($i=0, $o=0; $i<=6; $i++) {
echo $days[$i].'<br>';
echo $osadki[$o].'<br>';
$o++;
echo $osadki[$o].'<br>';
echo $cel[2][$i+1].'<br><hr>';
}
?>
Результат:
Чт 7 Января 2010г.
ясно
без осадков
-17°
Пт 8 Января 2010г.
без осадков
ясно
-22°
Сб 9 Января 2010г.
ясно
без осадков
-10°
Вс 10 Января 2010г.
без осадков
малооблачно
-6°
Пн 11 Января 2010г.
малооблачно
без осадков
+1°
Вт 12 Января 2010г.
без осадков
ясно
-12°
Ср 13 Января 2010г.
ясно
без осадков
-13°
|
|
|