спарсить html

Тема в разделе "PHP", создана пользователем lena berkova, 25 авг 2009.

Статус темы:
Закрыта.
Модераторы: latteo
  1. lena berkova

    lena berkova

    Регистр.:
    14 янв 2009
    Сообщения:
    441
    Симпатии:
    19
    уважаемые подскажите решение. есть хтмл документ. я его гружу в объект через str_get_html класса simple_html_dom, затем я выбираю все элементы формы через find( 'input' ). мне возвращается массив элементов примерно такой структуры
    <input type=hidden name=pid value='1426'>
    вопрос- как красивее всего получить значение поля по его имени? т.е. както так if ( item['pid'].value=='1426')
    про регулярные выражения знаю, про strpos тоже, но хочется на уровле хмл атрибутов т.е. задать имя поля и получить значение
    подозреваю что можно через этот же класс сделать, только как?
     
  2. antn

    antn Постоялец

    Регистр.:
    11 июл 2009
    Сообщения:
    104
    Симпатии:
    30
    Можно использовать CSS селекторы:

    find('input[name=нужное имя]')
     
  3. Hangar

    Hangar Создатель

    Регистр.:
    25 июн 2008
    Сообщения:
    15
    Симпатии:
    0
    Быстрее работать с регулярными выражениями.
    У самого стояла задача рекурсивного грабинга таблиц. Отказался от ф-ии которую вы используете.
     
  4. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Тебе нужно для конкретного поля или для всех полей получить значение по имени?
     
  5. t0os

    t0os

    Регистр.:
    21 окт 2007
    Сообщения:
    284
    Симпатии:
    36
    Вы же
    получаете, вот и парсите его регуляркой. Был бы XML, тогда симпл используйте :)
     
  6. juggernaut13

    juggernaut13 Постоялец

    Регистр.:
    23 авг 2009
    Сообщения:
    59
    Симпатии:
    16
    друг, это не simplexml, а либа на php написанная, как раз для разбора документов html, в том числе и невалидных
     
  7. painsource

    painsource Постоялец

    Регистр.:
    13 июл 2009
    Сообщения:
    64
    Симпатии:
    8
    Я тоже советую через регулярные выражения парсить -- это и кода меньше и работать быстрее будет (если нормальные рег выражения писать)
     
  8. Ammy

    Ammy Создатель

    Регистр.:
    29 авг 2009
    Сообщения:
    10
    Симпатии:
    0
    Скажите, пожалуйста, а можно ли спарсить результат обработки AJAX формы, предварительно про-POST'ив форму при помощи CURL'а? Искала решение, и нашла PHP Class XMLHttpRequest, который, как говорят авторы, делает то, о чём идёт речь. Поставила, значит, класс этот, запарсила по экземплу с офф сайта транслэйтор гугля - работает, но вот целевой адрес - нифига. :mad::eek: Помогите!!!
    Пример:
    PHP:
    <?php
            
    require_once('class.XMLHttpRequest.php'); 
            
    $ajax = new XMLHttpRequest();
            
    $ajax->open("POST","http://www.google.com/translate_t" );
            
    $ajax->send("langpair=pt|en&text=cachorro");
            if(
    $ajax->status == 200){
                    echo 
    $ajax->responseText;
            }else echo 
    "ERROR: $ajax->status";
    ?>
    Целевой адрес:

    PHP:
    <?php
            
    require_once('class.XMLHttpRequest.php'); 
            
    $ajax = new XMLHttpRequest();
            
    $ajax->open("POST","http://ru.savefrom.net" );
            
    $ajax->send("sf_url=(видеосервис тут)");
            if(
    $ajax->status == 200){
                    echo 
    $ajax->responseText;
            }else echo 
    "ERROR: $ajax->status";
    ?>
    Понятно дело, что само по себе оно работать не будет, и нужно вносить какие-то корректировки...
     
Статус темы:
Закрыта.