Парсер на javascript

Discussion in 'PHP' started by di_sl, 31 Jan 2010.

  1. di_sl

    di_sl Banned

    Joined:
    11 Oct 2009
    Messages:
    6
    Likes Received:
    4
    Reputations:
    0
    Приветствую всех!
    Ищу скрипт парсера на JavaScript, в гугл не шлите, только от туда) всю ночь гуглил, результат ноль.

    Нашел на php
    PHP:
    <?
        
    /* получаем содержимое нужной нам страницы в переменную $content (обратите внимание, - мы используем для этого функцию file_get_contents. Она может работать с удаленными URL только если в настройках PHP установлена опция allow_url_fopen) */
        
    $content file_get_contents("http://www.site.ru");

        
    // Определяем позицию строки, до которой нужно все отрезать (используем функцию strpos()).
        
    $pos strpos($content"Начало блока");

        
    /*Отрезаем все, что идет до нужной нам позиции (функция substr в данном случае принимает два параметра: строка для обработки и //номер позиции. Функция вернет строку, НАЧИНАЯ с указанной позиции) */
        
    $content substr($content$pos);

        
    // Точно таким же образом находим позицию второй строки
        
    $pos strpos($content"Конец блока");

        
    // Отрезаем нужное количество символов от нулевого
        
    $content substr($content0$pos);

        
    // выводим полученную строку.
        
    echo $content

    ?>
    В принципе то что нужно для моей задумки, но не подходит php. Может завалялось у кого похожее на этот скрипт но только на JavaScript ?
    Заранее премного благодарен.
     
  2. pumbo

    pumbo New Member

    Joined:
    16 Sep 2009
    Messages:
    14
    Likes Received:
    0
    Reputations:
    0
    Насколько мне известно, парсер на JS не получится.
    Получить содержимое чужой (не со своего сайта) страницы через ajax нельзя (поправьте, если ошибаюсь).
     
  3. WNZRS

    WNZRS Member

    Joined:
    3 Sep 2009
    Messages:
    294
    Likes Received:
    52
    Reputations:
    1
    Можно получить содержимое чужой страницы через фреймы
     
  4. Deathdreams

    Deathdreams Elder - Старейшина

    Joined:
    8 Nov 2008
    Messages:
    342
    Likes Received:
    116
    Reputations:
    5
    Поправлю, можно.

    Но парсер написать нереально, т.к. в запросе нельзя даже получить header .
     
  5. di_sl

    di_sl Banned

    Joined:
    11 Oct 2009
    Messages:
    6
    Likes Received:
    4
    Reputations:
    0
    Понятно, оч жаль :( ну ладно, буду искать другие выходы...
    Спасибо всем!
     
  6. banned

    banned Banned

    Joined:
    20 Nov 2006
    Messages:
    3,324
    Likes Received:
    1,193
    Reputations:
    252
    А аяксом?)
     
  7. di_sl

    di_sl Banned

    Joined:
    11 Oct 2009
    Messages:
    6
    Likes Received:
    4
    Reputations:
    0
    Я нашел другой выход, но есть опять проблема :D для тех кто знает php эта не проблема, поэтому надеюсь на поддержку.

    Вот смотрите, часть того кода что я выложил выше
    PHP:
        // выводим полученную строку.
        
    echo $content 
    Как сделать чтоб он не выводил на ружу то что нашел? а подставлял в строку внутри скрипта. Я попробывал использовать
    PHP:
    <?=$content?>
    Всё вроде катит, в строку в коде подставляет то что нашел. Но не магу понять как убрать то что он выводит) если оставляю так
    PHP:
     // выводим полученную строку.
        
    echo 
    Вылетает ошибка :D хотя в этом скрипте есть
    PHP:
    <?=$content?>
    Для подставки найденного внутри скрипта) С php не селен, полностью нулевое знание :D поэтому обяснил как смог, думаю понятно что я имел ввиду.

    Вот я олень!!! :D решение проблемы куда проще
    PHP:
        // выводим полученную строку.
     //echo $content
    Нужно было за комментировать выход и всё)) вообщем разобрался...
     
    #7 di_sl, 1 Feb 2010
    Last edited: 1 Feb 2010
  8. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Зачем коментировать вывод если его можно вообще не делать? =)
     
  9. Fepsis

    Fepsis Elder - Старейшина

    Joined:
    17 Sep 2008
    Messages:
    791
    Likes Received:
    391
    Reputations:
    72
    Рассмешил.. :D :D :D
     
  10. di_sl

    di_sl Banned

    Joined:
    11 Oct 2009
    Messages:
    6
    Likes Received:
    4
    Reputations:
    0
    Новичок я :D
    Тут ещё одна проблема, запускаю парсер на локалке (на денвере), парсер работает на ура, заливаю его на хостинг и там болт :D т.е он парсит, но инфа выходит одна и таже. К примеру мне нужны циферки между <p> и </p> циферки меняются при каждом заходе на сайт. Когда я запускаю парсер он мне выдает одни и те же цифры) а на локалке всё нормально, при каждом запуске новые циферки.

    Кстати на хостинге стоит другой парсер, но он работает с другим ресурсом и проблем у него нет (тфу, тфу, тфу). Теперь я понять не могу почему вылезает одна и та же инфа... может прикол админа? кстати я и через curl пробовал и через ..уюл :D одно и тоже.
     
  11. SQLHACK

    SQLHACK Остались только слоны

    Joined:
    27 Sep 2006
    Messages:
    437
    Likes Received:
    372
    Reputations:
    407
    смерть мозга
    >>К примеру мне нужны циферки между <p> и </p>

    если у тя на странице только 1 такая конструкция, то резальтат будет в переменной $match[1]

    Code:
    <?php
    
    $content = file_get_contents("http://ssss.com/sssss");
    preg_match("#<p>\s*(\d+)\s*<\/p>#i", $content, $match);
    echo $match[1];
    
    ?>

    а, если много то они будут в массиве $match[1]


    Code:
    <?php
    
    $content = file_get_contents("http://ssss.com/sssss");
    preg_match_all("#<p>\s*(\d+)\s*<\/p>#i", $content, $match);
    var_dump($match[1]);
    
    ?>
     
    _________________________
    #11 SQLHACK, 1 Feb 2010
    Last edited: 1 Feb 2010
  12. b3

    b3 Banned

    Joined:
    5 Dec 2004
    Messages:
    2,174
    Likes Received:
    1,157
    Reputations:
    202
    Я подозреваю что речь идет о кэшировании.
     
  13. deedoc

    deedoc New Member

    Joined:
    12 Dec 2007
    Messages:
    4
    Likes Received:
    0
    Reputations:
    0
    Почему отказались от JS? Ведь вполне можно динамически открыть окно и получить всё, что в нем есть в качестве проперти. Это в роли концепции, если нужно, можно покурить в эту сторону.