За последние 24 часа нас посетили 17445 программистов и 1711 роботов. Сейчас ищут 1679 программистов ...

Не могу пропарсить погоду на gismeteo.ru.

Тема в разделе "Регулярные выражения", создана пользователем mbk2008, 22 июл 2008.

  1. mbk2008

    mbk2008 Активный пользователь

    С нами с:
    22 июл 2008
    Сообщения:
    4
    Симпатии:
    0
    Итак, проблема.
    Есть HTML-код с сайта gismeteo.ru. Его нужно проанализировать и вытащить погоду по дням на 10 дней. Вот что у меня получилось:

    PHP:
    1.  
    2. <?php
    3.  
    4. $s = file_get_contents("http://www.gismeteo.ru/towns/28367.htm");
    5.    
    6.     $m = array();
    7.    
    8.     preg_match("#var\s+frc='(.*?)'#", $s, $m);
    9.    
    10.     preg_match_all("#<tr>(.*?)</tr>#", $m[1], $d);
    11.    
    12.     foreach ($d[1] as $value)
    13.     {
    14.    
    15.         preg_match_all("#<td.*?>(.*?)</td>#", $value, $b);
    16.     }
    17. ?>
    18.  
    Как дальше быть - ума не приложу!
     
  2. Anonymous

    Anonymous Guest

    Парсить чужие сайты - моветон.
     
  3. mbk2008

    mbk2008 Активный пользователь

    С нами с:
    22 июл 2008
    Сообщения:
    4
    Симпатии:
    0
    Блин, это задание!!!
    Не я же придумал...
     
  4. mbk2008

    mbk2008 Активный пользователь

    С нами с:
    22 июл 2008
    Сообщения:
    4
    Симпатии:
    0
    В общем вот ядро проблемы:

    Код:
    PHP:
    1.  
    2. <?php
    3.  
    4.  
    5.     $s = file_get_contents("http://www.gismeteo.ru/ztowns/28367.htm");
    6.    
    7.     $m = array();
    8.    
    9.     //вытаскивает переменную js с прогнозом
    10.     preg_match("#var\s+frc='(.*?)'#", $s, $m);
    11.    
    12.     preg_match_all("#<tr>(.*?)</tr>#", $m[1], $d);
    13.    
    14.        
    15.     foreach ($d[0] as $value)
    16.     {
    17.         preg_match_all("#<td.*?>(.*?)</td>#", $value, $b);
    18.     }
    19.        
    20.     foreach ($b[1] as $value)
    21.     {
    22.         echo $value.'<br>';
    23.     }  
    24. ?>
    25.  
    вытаскивает самую нижнюю строчку (Подробнее: на 1 на 1-3 на 3-5 на 5-7 на 8-12 дней вперед
    ). А мне нужны все. Как сделать?
     
  5. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    Воровство - это всегда плохо, а когда воровать пытается не умеющий это делать - это еще и забавно.
    Пожалуйста, не занимайте воровством. Купите у гисметео прогноз и получайте его в удобном виде.
     
  6. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0
    Гисметео выдаёт всем желающим прогноз в XML формате.
     
  7. MiksIr

    MiksIr Активный пользователь

    С нами с:
    29 ноя 2006
    Сообщения:
    2.339
    Симпатии:
    44
    У топикстартера проблема.. всем желающим гисметео выдает прогноз только на 1 день. А ему нужно больше.
     
  8. Sergey89

    Sergey89 Активный пользователь

    С нами с:
    4 янв 2007
    Сообщения:
    4.796
    Симпатии:
    0