Помогите с php пасрером

Тема в разделе "PHP", создана пользователем serguspl, 29 ноя 2014.

  1. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
  2. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    Теперь нужно парсить информацию ( время и и комент ) с ссылка
    Не могу подобрать selector
    Перебрал много вариантов..но так и не получилось.. вот один с них, что не так?

    'selector' => '.sc-match-comments li .sc-comment-time'
     
  3. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    дело не в селекторе, а в том что весь контент подтягивает javaScript. domCrawler не подгружает динамически скрипты.

    Нужно использовать что-то типа selenium или phantomJs. Скрипт будет куда сложнее.
     
  4. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    PHP:
    <?php
    require '../../vendor/autoload.php';
    use 
    Goutte\Client;
    $config = [
        
    'url' => 'http://football24.ua/football/onlineGame.do?objectId=16474',
        
    'selectort' => '#online-game-actions-list-table tr .leftCell tr .action-time-cell',
        
    'selector' => '#online-game-actions-list-table tr .rightCell .player-action-description',
    ];
    $client = new Client();
    $crawler $client->request('GET'$config['url']);
    $resultt = array();
    $resultt $crawler->filter($config['selectort'])->each(function($node) {
      return 
    trim($node->text());
    });
    $result = array();
    $result $crawler->filter($config['selector'])->each(function($node) {
      return 
    trim($node->text());
    });
        echo 
    "<table ><tbody>";
      for (
    $i 0$i <= count($result); $i++)
      {
        echo 
    "<tr><td>".$resultt[$i]."</td><td>".$result[$i]."</td></tr>";
      }
          echo 
    "</tbody></table>";
    ?>
    Все отображается так как нужно.. ссылка
    Но появляется файл error_log, и растет по размеру...в нем дублируется одна срока.
    PHP:
    [14-Mar-2015 *** ***] PHP Notice:  Undefined offset49 in ***/everton-dynamo.php on line 22
     
  5. web2us

    web2us

    Регистрация:
    10 мар 2013
    Сообщения:
    18
    Симпатии:
    1
    покажите 22 строчку в том файле
     
  6. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    web2us, echo "<tr><td>".$resultt[$i]."</td><td>".$result[$i]."</td></tr>";
     
  7. web2us

    web2us

    Регистрация:
    10 мар 2013
    Сообщения:
    18
    Симпатии:
    1
    $resultt[$i] поля $i нет
    поставте проверку и не будет больше этой нотайс
     
  8. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    Как это сделать?
     
  9. web2us

    web2us

    Регистрация:
    10 мар 2013
    Сообщения:
    18
    Симпатии:
    1
    вот так сделай
    Код:
    
    echo "<tr><td>".isset($resultt[$i])?$resultt[$i]:''."</td><td>".isset($resultt[$i])?$resultt[$i]:''."</td></tr>";
    
    
     
  10. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    web2us, что-то не так...
    Выводит только resultt[$i] и просто в строчку...
     
  11. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    Вернее выводит только то что во второй ечейке(столбике). И выводит просто строкой
     
  12. web2us

    web2us

    Регистрация:
    10 мар 2013
    Сообщения:
    18
    Симпатии:
    1
    ну ошибся букавой т... попроавил
    вот так сделаq
    Код:
    
    echo "<tr><td>".isset($resultt[$i])?$resultt[$i]:''."</td><td>".isset($result[$i])?$result[$i]:''."</td></tr>";
    
    
     
  13. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    web2us, не ну я эт понимаю. Выводит только то, что во второй ячейке. И выводит просто текстом (не табличкой).
    Ссылка
     
  14. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    Подскажите, как сделать так, что бы в php фале выполнялся скрипт, и просто присваивал значение(массив) переменной. А уже в html файле через require или include подключить этот php и вывести эту переменную(массив)?
     
  15. web2us

    web2us

    Регистрация:
    10 мар 2013
    Сообщения:
    18
    Симпатии:
    1
    в файле a.php
    <?php
    $a = 'aaaaaaaaaaaaaaaaaaaaaaaaaaa';
    echo $a;
    ?>

    а в файле index.html через ajax получить данные из файла a.php и дальше уже с ними делать все, что угодно

    html файл не может выполнять PHP скрипты или их подгружать с помощью

    только через javascript и ajax
     
  16. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    а можете скинуть пример, как получить данные с a.php в b.html?
     
  17. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    1. Зачем делать отдельно php и отдельно html?
    2. Можно сделать все дела в php и хтмл вставить в php файд
    PHP:
    <?php
    делаем дела на похапе
    ?>
    <html>
    <body>
    <?php береём переменную и делаем что хотим?>
    </body>
    </html>
    можно и подключить через require_once другой php файл но в нём просто сделать html и использовать переменную
     
  18. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    $iD, этот вариант подходит!
    Но мне нужно автоматически обновлять данные получены с php файла.

    Можете подсказать, как сделать авто обновление одного блока(таблица, та что выводим с парсера) в этом же php файле?
     
  19. $iD

    $iD Команда форума

    Регистрация:
    13 мар 2012
    Сообщения:
    3.581
    Симпатии:
    1.482
    тогда аякс. и дёграть скрипт по таймауту.
     
  20. serguspl

    serguspl

    Регистрация:
    15 дек 2012
    Сообщения:
    50
    Симпатии:
    3
    знаю как загружать с стороннего фала инфу и обновлять... а как обновлять с этого же файла? Можно пример?
    PHP:
    <div id="contents"></div>
    <
    script>
            function 
    show()
            {
                $.
    ajax({
                    
    url"a.php",
                    
    cachefalse,
                    
    success: function(html){
                        $(
    "#contents").html(html);
                    }
                });
            }
       
            $(
    document).ready(function(){
                
    show();
                
    setInterval('show()',300000);
            });
        </
    script>