Как спарсить значение массы из таблицы характеристик товара?
Есть такой отрывок кода:
<td class="param-head">
<dl>
<dt class="n-product-spec__name">
<span class="n-product-spec__name-inner">Диаметр мембранного бака</span>
</dt>
<dd class="n-product-spec__value">
<span class="n-product-spec__value-inner">229 мм</span>
</dd>
</dl>
</td>
<td class="param-head">
<dl>
<dt class="n-product-spec__name">
<span class="n-product-spec__name-inner">Масса</span>
</dt>
<dd class="n-product-spec__value">
<span class="n-product-spec__value-inner">14 кг</span>
</dd>
</dl>
</td>
Мне нужно именно значение массы: 14 кг.
Не пойму, как написать путь в запросе парсинга XPath, в связи с тем что все классы повторяются для разных атрибутов, и применять порядковый номер тоже не вариант — в разных товарах масса под разным порядковым номером.
Ответы (1 шт):
Автор решения: splash58
→ Ссылка
Разбил на строчки для читаемости.
//dt[@class="n-product-spec__name" and span[@class="n-product-spec__name-inner" and .="Масса"]]
/following-sibling::dd[1][@class="n-product-spec__value"]
//span[@class="n-product-spec__value-inner"]/text()
- Ищем dt со словом Масса
- Берем первый следующий dd нужного класса
- Выбираем значение span