Парсинг с помощью simple_html_dom

210
24 апреля 2017, 05:24

Всем привет! Помогите в вопросе... Есть страница, на ней есть данная таблица:

<table class="tablesorter tablesorter-default" border="0" cellspacing="1" cellpadding="1" role="grid">
<thead>...</thead>
<tbody aria-live="polite" aria-relevant="all">
    <tr role="row">
        <td> <strong><a title="Bread" href="http://site.com/Bread/">Bread</a></strong> 
        <br>
        <img class="tie-appear" 
                src="http://url-at-image/Bread.png" 
                alt="Wheat" 
                width="100" 
                height="100" 
                data-image-key="Bread.png" 
                data-image-name="Bread.png">
        </td>
        <td>1</td>
        <td>3</td>
        <td>2 min</td>
        <td>1</td>
        <td>
            <a title="Bread" href="http://site.com/wheat/">Bread</a>
        </td>
        <td>Bakery</td>
    </tr>
    <tr>...</tr>
</tbody>

Нужно пройтись по таблице->найти и выбрать необходимую информацию->занести в массив. Парсинг выполняю этим кодом:

require_once 'lib/SimpleHtmlDom.php';
header('Content-Type: application/json');
$html = new simple_html_dom();
$url = 'http://site.com/table.html';
$html->load_file($url);
$articles = array();
foreach ($html->find('table tbody tr') as $article){ 
    $item['name'] = $article->find('td strong a', 0)->innertext;
    $item['image_url'] = $article->find('td img', 0)->src;
    $item['image_name'] = $article->find('[data-image-name]', 0);
    $articles[] = $item; 
}
//output
print_r($articles);

На выходе получаю это:

Array
(
    [0] => Array
        (
            [name] => Bread
            [image_url] => http://url-at-image/Bread.png
            [image_name] => 
        )
    [1] => Array
        (
            [name] => Other
            [image_url] => http://url-at-image/Other.png
            [image_name] => 
        )
    ...
)

Суть вопроса: как получить значение image_name? т.е. как правильно прописать поиск чтобы вытянуть значение атрибута data-image-name?

Answer 1

Всем спасибо, ответ я уже нашёл:

$item['image_name'] = $article->find('img', 0)->attr['data-image-name'];
READ ALSO
Парсер 403 Forbidden

Парсер 403 Forbidden

Друзья помогите парсить этот url на php

336
Выборка данных из массива

Выборка данных из массива

Есть переменная

257
Помогите отредактировать код на php

Помогите отредактировать код на php

Суть его в том, что-бы подключиться к сайту Steam, взять один раз информацию через OpenID и записать ее в файл cachehtml

246
Проблема при установке модуля оплаты liqpay на Yii2

Проблема при установке модуля оплаты liqpay на Yii2

Всем добрый день! Есть небольшой вопрос, так как первый раз столкнулся с установкой модуля оплаты liqpay на Yii2Сначала все делал как было написано,...

319