Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > PHP: Общие вопросы > Парсинг сайта


Автор: Black_leopard 5.10.2012, 07:18
Здравствуйте.

Задался вопросом с сайта icq.com вытащить иконку состояния (онлайн, оффлайн ....), через http://status.icq.com/online.gif?icq=#ICQ#&img=27 отображает не корректный статус (хотя галочка "Отображать статус для веб стоит).

Т.е. сейчас с адреса http://www.icq.com/people/#ICQ# хочу вытащить картинку что находится в диве <div class="d1-1-2-1-1">....</div>

Код там такой:
Код

<div class="d1-1-2">
    <div class="d1-1-2-1">
        <div class="d1-1-2-1-1">
            <img src="http://c.icq.com/people/img/offline.gif" alt="Офф-лайн" title="Офф-лайн">
        </div>
        <div class="d1-1-2-1-2" id="not_friend_flname">Юрий</div>


Не получается написать регулярное выражение с учетом переноса строк (тут в несколько строк записано).

Пишу так 

Код

    $URL = "http://www.icq.com/people/".$arParams['UID'];

    $ch = curl_init($URL);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    $result = curl_exec($ch);
    curl_close($ch);
    
    preg_match('<div class="d1-1-2-1-1">(.*?)</div>', $result, $patterns);
    print_r($patterns);


Ничего не возвращает. Подскажите, пожалуйста, как правильно нужно написать выражение?

Автор: MoLeX 5.10.2012, 07:29
Код

var_dump($result);

Автор: Opik 10.10.2012, 13:05
парсить HTML проще через DOM и XPATH

http://php.net/manual/en/domdocument.loadhtml.php
http://php.net/manual/ru/domxpath.query.php

Автор: Aliance 12.10.2012, 16:51
Opik, а если код не валидный, всё равно так проще?

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)