парсинг сайта

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
artemYii
Сообщения: 4
Зарегистрирован: 2017.05.22, 11:55

парсинг сайта

Сообщение artemYii »

Всем привет, столкнулся с такой проблемой, не могу отпарсить страницу - http://www.vinex-media.ru/outdoor/addre ... ran/22412/ , нужна именно фотография которая находиться в div.schphoto.

В чем сама загвостка, при "скачивании"страницы, берется только ее верхушка или середина страницы ( до конца li), а сама картинка находиться в конце. И я не могу понять почему...

Пример:

Код: Выделить всё

$dom = new domDocument;
$dom->loadHTMLFile('http://www.vinex-media.ru/outdoor/address/chekhov/svetodiodnyy-ekran/22412/');
$dom->preserveWhiteSpace = false;
$mango_div = $dom->getElementsByTagName ('body');
var_dump($this->get_inner_html($mango_div->item(0)));

function get_inner_html( $node )
    {
        $innerHTML= '';
        $children = $node->childNodes;
        foreach ($children as $child)
        {
            $innerHTML .= $child->ownerDocument->saveXML( $child );
        }

        return $innerHTML;
    }
На вывод выходит:
<ul>
<li><u>Города</u></li>
<li><a href="....">Балашиха</a></li>
<li><a href=".....">Бронницы</a></li>
<li><a href=".....">Видное</a></li>
<li><a href=".....">Волоколамск</a></li>
<li><a href=".....">Воскресенск</a></li>
<li><a href=".....">Голицыно</a></li>
........

Пробовал использовать getElementsByTagName, но это не принесло результата. В getElementsByTagName вставлял и "div" и "div.main".
zelenin
Сообщения: 10596
Зарегистрирован: 2013.04.20, 11:30

Re: парсинг сайта

Сообщение zelenin »

юзай xpath
artemYii
Сообщения: 4
Зарегистрирован: 2017.05.22, 11:55

Re: парсинг сайта

Сообщение artemYii »

Решил проблему так:

Код: Выделить всё

$html = file_get_contents($this->url);
preg_match('/schphoto">[^"]+"([^"]+)"/', $html ,$match);
еще понравился simple_html_dom, с ним тоже за пару минут справился с этой задачей

Код: Выделить всё

$html = new simple_html_dom();
$html->load_file($this->url);
$items = $html->find('div[class=schphoto] img');  
$html->clear();
$img = $items[0]->attr;
Аватара пользователя
Йож
Сообщения: 574
Зарегистрирован: 2015.08.26, 03:05

Re: парсинг сайта

Сообщение Йож »

Мне нравится phpquery для парсинга
Ответить