За последние 24 часа нас посетили 57047 программистов и 3378 роботов. Сейчас ищут 1099 программистов ...

Парсер

Тема в разделе "PHP для новичков", создана пользователем Awilum, 4 окт 2010.

  1. Awilum

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

    С нами с:
    15 ноя 2009
    Сообщения:
    325
    Симпатии:
    26
    Адрес:
    Earth
    Делаю парсер. Застрял на одном моменте.
    Ссылки из массива не подставляются.

    Я имею массив ссылок



    $htmls = Array (
    [0] =>site.ru/index.php?page=1
    [1] =>site.ru/index.php?page=2
    )


    PHP:
    1.  
    2.             for($i=0;$i<count($htmls);$i++) {          
    3.             $htm = file_get_html($htmls[$i]);              
    4.            
    5.             echo $htmls[$i]."\n";
    6.             echo $i."\n\n";
    7.            
    8.                     foreach($htm->find('#ctl00__CtlContentPlaceHolder_ctl01__CtlResultsGroup') as $e) {
    9.                         foreach($e->find('.main-info') as $k) {
    10.                             foreach($k->find('h2') as $s) {        
    11.                                 foreach($s->find('a') as $q) {                                       
    12.                                     $html = file_get_html($q->href);
    13.                                     foreach($html->find('.overvw-data') as $ea) {                  
    14.                                         echo $ea->plaintext."\n\n";
    15.                                         fwrite($handle,$ea->plaintext.'<br />');                       
    16.                                     }  
    17.                                 }
    18.                          }         
    19.                     }                                              
    20.                }           
    21.             }          
    22.  
    23.  
    Оно тупо ходит кругами по одной и той же ссылке когда должно проходить по ссылке $htmls[$i]
    Первая интерация цикла - первая ссылка из массива
    Вторая интерация цикла - опять первая ссылка из массива

    юзаю Simplehtmldom
     
  2. Awilum

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

    С нами с:
    15 ноя 2009
    Сообщения:
    325
    Симпатии:
    26
    Адрес:
    Earth
    выводит что мол новая ссылка, все окейно
    PHP:
    1. echo $htmls[$i]."\n";
    но парсер все равно парсит одну первую ссылку 2 раза подряд.
    PHP:
    1. $htm = file_get_html($htmls[$i]);
     
  3. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Awilum
    хех
    у меня все замечательно
    PHP:
    1. <?php
    2.  $htmls = Array (
    3.          'http://www.yandex.ru',
    4.          'http://www.google.ru'
    5.         );
    6.         for($i=0;$i<count($htmls);$i++) {
    7.              $htm = file_get_contents($htmls[$i]);
    8.  
    9.              echo $htmls[$i]."\n";
    10.                 echo $htm;
    11.              }
     
  4. Awilum

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

    С нами с:
    15 ноя 2009
    Сообщения:
    325
    Симпатии:
    26
    Адрес:
    Earth
  5. Awilum

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

    С нами с:
    15 ноя 2009
    Сообщения:
    325
    Симпатии:
    26
    Адрес:
    Earth
    в чем лажа скорее всего понял.

    Дело в том что одна и та же информация находится по

    site.ru/index.php
    site.ru/index.php?page=1

    хоть знаю куда теперь копать.

    Только вот это беспокоит. Я в консоле запускаю скрипт и при завершении выполнения либо Windows окошко с ошибкой
    в php или же в самой консоле написано zend_mm_heap corrupted
     
  6. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Awilum
    а вы всмысле его из под виндуза запускать будете потом? попробуйте на хостинге
    могу я попробовать, у меня linux и скучно
     
  7. Awilum

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

    С нами с:
    15 ноя 2009
    Сообщения:
    325
    Симпатии:
    26
    Адрес:
    Earth
    хотя скрипт работает отлично, но в конце такая ошибка вот:
    CLI - обнаружена ошибка. Приложение будет закрыто. Приносим извинения за неудобства.

    Как будет потом не знаю, но интересно было бы узнать что это за ошибка такая из за чего она может возникнуть.
     
  8. Padaboo

    Padaboo Старожил
    Команда форума Модератор

    С нами с:
    26 окт 2009
    Сообщения:
    5.242
    Симпатии:
    1
    Awilum
    баг репорт туда откуда скрипт парсера
    а в логах что?
     
  9. Awilum

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

    С нами с:
    15 ноя 2009
    Сообщения:
    325
    Симпатии:
    26
    Адрес:
    Earth
    У php ни каких логов не нашел, а у Апаче все чисто Ок.