Найти тему

Собираем каталог товаров ABB

Оглавление
Электроустановочное и модульное оборудование ABB
Электроустановочное и модульное оборудование ABB

Собираем данные с карточки товара

Для примера возьмем uzo com ru

1. Категория

<span class="j-navigator__separator">-</span>

наш xpath //div[@class='j-navigator']/a[2]

2. Подкатегория

<span class="j-navigator__separator">-</span>

наш xpath //div[@class='j-navigator']/a[3]

3. Наименование

<h1 class="j-product__title" itemprop="name">
Заглушка узкая (1 модуль) Zenit (Белый) N2100 BL </h1>

наш xpath //h1[@itemprop='name']

4. Цена

<span class="price j-product__price__current" itemprop="price">169 руб.</span>
руб. заменяем на пустое значение

наш xpath //span[@itemprop='price']

5. Описание

Описание как таковое отсутствует у большинства товаров

Поэтому используем короткое описание

//div[contains(@class,'j-product__page') and contains(@class,'product-details-block')]/div[@class='j-tabs']/div[@id='tab1']/ul/li//strong/span

6. Бренд

<tr class="prod-properties-row" style="background-color: #f1eeee;">
<td class="prod-properties-name">
бренд:
</td>
<td class="prod-properties-val">
ABB
</td>
</tr>

наш xpath //*[normalize-space(text())="бренд:"]/following::td

если на сайте бренд 1 , то проще объявить значение константой и оно будет подставляться автоматически

7. Серии

<tr class="prod-properties-row">

<td class="prod-properties-name">
серии:
</td>
<td class="prod-properties-val">
Niessen Zenit
</td>
</tr>

наш xpath //*[normalize-space(text())="серии:"]/following::td

8. Артикул

<tr class="prod-properties-row" style="background-color: #f1eeee;">
<td class="prod-properties-name">
артикул:
</td>
<td class="prod-properties-val">
N2100 BL
</td>
</tr>

наш xpath //*[normalize-space(text())="артикул:"]/following::td

9. Материал

<tr class="prod-properties-row">
<td class="prod-properties-name">
материал:
</td>
<td class="prod-properties-val">
пластик
</td>
</tr>

наш xpath //*[normalize-space(text())="материал:"]/following::td

10. Цвет

<tr class="prod-properties-row" style="background-color: #f1eeee;">
<td class="prod-properties-name">
цвет:
</td>
<td class="prod-properties-val">
белый
</td>
</tr>

наш xpath //*[normalize-space(text())="цвет:"]/following::td

11. Тип

<tr class="prod-properties-row">
<td class="prod-properties-name">
тип:
</td>
<td class="prod-properties-val">
Заглушки
</td>
</tr>

наш xpath //*[normalize-space(text())="тип:"]/following::td

12. Тип Конструкции

<tr class="prod-properties-row" style="background-color: #f1eeee;">
<td class="prod-properties-name">
тип конструкции:
</td>
<td class="prod-properties-val">
механизм с накладкой
</td>
</tr>

наш xpath //*[normalize-space(text())="тип конструкции:"]/following::td

13. Способ монтажа

<tr class="prod-properties-row">
<td class="prod-properties-name">
способ монтажа:
</td>
<td class="prod-properties-val">
встроенный монтаж
</td>
</tr>

наш xpath //*[normalize-space(text())="способ монтажа::"]/following::td

14. Степень защиты (ip):

<tr class="prod-properties-row" style="background-color: #f1eeee;">
<td class="prod-properties-name">
степень защиты (ip):
</td>
<td class="prod-properties-val">
IP20
</td>
</tr>

15 Фото

<img class="mg-product-image" data-transfer="true" data-product-id="528" src="https://uzo.com.ru/uploads/product/500/528/thumbs/70_6+.jpg" alt="" title="" data-magnify-src="https://uzo.com.ru/uploads/product/500/528/6+.jpg" style="cursor: crosshair; display: block; position: absolute;">

наш xpath //img[@class='mg-product-image']@src

16. Ссылки на карточки товаров

<div class="j-product__name">
<a href="https://uzo.com.ru/abb-niessen-zenit/mehanizmy-zenit-plastik/zaglushka-uzkaya-1-modul-zenit-belyy-n2100-bl">Заглушка узкая (1 модуль) Zenit (Белый) N2100 BL</a>
</div>

наш xpath //div[@class='j-product__name']/a

17. Пагинация

<li class="current"><a class="active page_1" href="/abb-niessen-zenit?page=1">1</a></li>

наш xpath //a[contains(@class, 'linkPage page_')]

Заключение

Это приблизительные данные для примера с одной карточки. Если ваша программа плохо работает с лишними пробелами, то скорее всего каждую характеристику придется вносить в код в ручную