Как правильно спарсить характеристики?

remkolseg99

Пользователь
Регистрация
24.01.2021
Сообщения
31
Благодарностей
0
Баллы
6
Подскажите люди добрые, куда копать!)

Есть сайт с подобными характеристиками
83411


Необходимо спарсить характеристики и каждое значение положить свою ячейку.
Проблема возникает при парсинге следующих карточек товаров (то значения перемешаются то данные не находит)

Понимаю что дело в путях xpath, уже перебрал все дерева элементов, да так и не удалось правильно заставить собирать данные
 

Spelin

Client
Регистрация
24.09.2019
Сообщения
445
Благодарностей
115
Баллы
43
Начни копать с нормального оформления вопроса.
Могу тебе также задать аналогичный вопрос: у меня в кармане конфета. Она шоколадная или нет? Помоги понять.

Приведи урл страницы.
 
  • Спасибо
Реакции: remkolseg99

remkolseg99

Пользователь
Регистрация
24.01.2021
Сообщения
31
Благодарностей
0
Баллы
6
Начни копать с нормального оформления вопроса.
Могу тебе также задать аналогичный вопрос: у меня в кармане конфета. Она шоколадная или нет? Помоги понять.

Приведи урл страницы.
Учту!
ссылка
 
Последнее редактирование:

Spelin

Client
Регистрация
24.09.2019
Сообщения
445
Благодарностей
115
Баллы
43
Пример как искать:
//td/span[contains(text(),'Вес')]/parent::td//following-sibling::td/span
 
  • Спасибо
Реакции: remkolseg99

remkolseg99

Пользователь
Регистрация
24.01.2021
Сообщения
31
Благодарностей
0
Баллы
6
Благодарю! Все работает
 

ruthless

Client
Регистрация
13.02.2017
Сообщения
215
Благодарностей
62
Баллы
28
Я лошара в xPath, но вот самый простой вариант что в голову пришел.
 

Вложения

  • Спасибо
Реакции: remkolseg99

remkolseg99

Пользователь
Регистрация
24.01.2021
Сообщения
31
Благодарностей
0
Баллы
6
Пример как искать:
//td/span[contains(text(),'Вес')]/parent::td//following-sibling::td/span
Вы написали решения! Мне бы самому разобраться. Можно вас попросить откомментить данный код или посоветовать чего бы почитать по данной теме
 

remkolseg99

Пользователь
Регистрация
24.01.2021
Сообщения
31
Благодарностей
0
Баллы
6
Я лошара в xPath, но вот самый простой вариант что в голову пришел.
Этот вариант не подойдет т.к. от от карточки к карточки, набор характеристик меняется

а собирать сплошным текстом не вариант
 

ruthless

Client
Регистрация
13.02.2017
Сообщения
215
Благодарностей
62
Баллы
28
  • Спасибо
Реакции: remkolseg99

Spelin

Client
Регистрация
24.09.2019
Сообщения
445
Благодарностей
115
Баллы
43
Вы написали решения! Мне бы самому разобраться. Можно вас попросить откомментить данный код или посоветовать чего бы почитать по данной теме
Второй вариант тоже рассмотри, можно все сложить в 2 списка и уже потом раскидывать.
Мой вариант только для тех характеристик которые нужны и известны.

Коммент:
Ищешь узел с текстом "Вес". Т.к. это таблица, то нужно найти родителя этого узла (на 1 уровень выше), дальше ищешь соседний узел который следует после, дальше ищешь его внутренний узел с нужным текстом.

Посмотри иерархию и все станет понятно.
 
  • Спасибо
Реакции: remkolseg99

Deisler

Client
Регистрация
26.10.2019
Сообщения
483
Благодарностей
183
Баллы
43
Этот вариант не подойдет т.к. от от карточки к карточки, набор характеристик меняется

а собирать сплошным текстом не вариант
Я бы делал именно предложенным вариантом выше. Добавив номер элемента, который хочешь взять.

(//td[@class='char_name'])[1]

таким образом возьмешь не сплошным текстом, а только первую строку имени

По этой же аналогии забираешь значение из первой строчки.

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

Пишу с телефона. Не тестил. Должно работать. Если не работает, то принцип описал
 
  • Спасибо
Реакции: remkolseg99

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)