Парсинг таблицы с Simple html dom

123
19 ноября 2019, 00:40

Всем доброго времени суток Использую парсера Simple html dom, для парсинга.

Есть такая таблица:

<tr>
<td class="b-product-info__cell">Производитель <span class="icon-help" id="product-attribute-0-0">&nbsp;</span></td>
<td class="b-product-info__cell">WS</td>
</tr>
<tr>
<td class="b-product-info__cell">Страна производитель</td>
<td class="b-product-info__cell">Китай</td>
</tr>
<tr>
<td class="b-product-info__cell">Тип туристической мебели</td>
<td class="b-product-info__cell">Стул со спинкой и подлокотниками</td>
</tr>

Ее я прохожу через такой код:

$spans = $h->find('td.b-product-info__cell');
foreach ($spans as $span) {
    if ($span->plaintext == 'Производитель') {
    $name = $span->nextSibling('.b-product-info__cell')->plaintext;
    echo $name;
}
}

Собственно Производитель меняю на названия других ячеек все работает нормально.

все строки парсятся нормально за исключением вот этой:

<td class="b-product-info__cell">Производитель <span class="icon-help" id="product-attribute-0-0">&nbsp;</span></td>

если я все правильно понял наличие в td

<span class="icon-help" id="product-attribute-0-0">&nbsp;</span>

не дает найти значение в

<td class="b-product-info__cell">WS</td>

а именно WS

Подскажите как мне проскочить / исключить этот блок. Возможно его можно удалить через outertext

Спасибо

Answer 1
$spans = $html->find('td.b-product-info__cell');
foreach ($spans as $span) {
    $name = trim(str_replace("&nbsp;", "", $span->plaintext));
    echo $name;
    echo "<br>";
}
Answer 2

Всем спасибо за ответы. В общем такой код заработал так как мне нужно.

$spans = $h->find('td.b-product-info__cell');
foreach ($spans as $span) {
if (stristr($span->plaintext, 'Назначение') !== FALSE) {
    $name = $span->nextSibling('.b-product-info__cell')->plaintext;
    echo $name;
}
}
READ ALSO
Нужна помощь в составлении регулярки

Нужна помощь в составлении регулярки

есть необходимость создать поиск совпадений по строке

145
Не правильная работа сессии

Не правильная работа сессии

При входе в аккаунт: я задаю $_SESSION['authorized'] = 1;

162
Парсер сайтов с XML и добавления в DB. Wordpress

Парсер сайтов с XML и добавления в DB. Wordpress

Разработал парсер, который парсит обменники от 50 до 150 сайтовНа каждом сайта XML с данными ( валюты, курсы, прибыль, резерв, и т

102
!PHP помощь с методом SOLID

!PHP помощь с методом SOLID

Какие методы SOLID были нарушены в этом коде или что можно изменить (упростить)Хотелось бы услышать ваши замечания и предложения (если у вас...

131