Парсинг характеристик товаров

ArtemAMA

Client
Регистрация
13.12.2016
Сообщения
13
Реакции
2
Баллы
3
Вопрос в правильности направления движения - (для новичка, т.е. просьба подробно, понятно, для нуба)

задача - с интернет магазина спарсить товары с характеристиками и разложить эти характеристики в файл xls или csv

1 захожу в каталог товара нужной категории, паршу ссылки на товары через регулярные выражения, по блоку "клик" перехожу на следующую страницу, и повторяю пока есть страницы, после удаляю дубли из списка ссылок

2 переходим по первой ссылке из списка
- и вот тут вопросы: как лучше спарсить характеристики в файл xls или csv
а- проблема что характеристики как повторяются, так и отличаются от карточки к корточке
б- как сделать, чтобы искать в заголовке файла характеристику имеется или нет, и если да, то в этот столбец добавлялось значение, если нет, то добавлять в заголовок новую характеристику в следующий столбец
/или может есть варианты как сделать все эти действия проще?/
если можно распишите как


может есть смысл сделать типа инструкцию на парсинг на форуме....
 
  • Спасибо
Реакции: CHADREX
Берите каждое значение в свою переменную и просто записывайте все переменные в таблицу.
Таким образом получится, что все характеристики будут раскиданы по правильным ячейкам.
Тех значений, которых не будет, просто запишутся пустыми.
 
  • Спасибо
Реакции: ArtemAMA
Берите каждое значение в свою переменную и просто записывайте все переменные в таблицу.
да, именно так и делал, думал как автоматизировать процесс создания шаблона и переменных

т.е. 1 парсим характеристики, закидываем из в список
2 чтобы зенка сама из списка характеристик создала переменные,
3 и на автомате добавить эти переменные в таблицу

/или может это я уже загнул...? и так не получится....
 
жаль, жаль
надо внести рац предложение, создать экшн который создает переменную, идея то хороша..... (хотя все равно мне кажется что-то я делаю не так..., что этот метод парсинга не комильфо..... )
 
Можно реализовать динамически, не используя знаний о наименовании характеристик.
Во первых попробуйте для начала все адреса товаров найти в сайтмапе - это сильно упростит шаблон.
Во вторых парсите название характеристики и значение как пару и задайте там какой нибудь разделитель типа точки с запятой или что подойдет.
Потом для каждого товара у вас будет просто список, который можно записать или в файл, или сразу обрабатывать в шарпе, если у вас есть навыки
Дальше вы берете все эти файлы и изо всех них берете только названия характеристик - составляете самую длиную цепочку уникальных характеристик и сортируете её. получается новый список.
Теперь нужно записать этот список всех уникальных характеристик в первую строку и дальше для каждого товарного файла в цикле обходить его и если в нем есть подходящая характеристика писать её значение. Если нет то писать NA
Ну и в итоге у вас будет искомая таблица, которую нужно просто сохранить в эксель
 
  • Спасибо
Реакции: CHADREX и ArtemAMA
Теперь нужно записать этот список всех уникальных характеристик в первую строку
такой список сделал, подскажите как из списка внести в таблицу в 1ю стр
через счетчик с увеличением для номера столбца?

для каждого товарного файла в цикле обходить его и если в нем есть подходящая характеристика писать её значение
в цикле обходить его и если в нем есть подходящая характеристика
разъясните пожалуйста как лучше реализовать эту функцию
как-то через логику? и переменные?
 
ну я щас больше на питоне чем на зенке
но добавить в таблицу это объеденить список через скажем ; и записать в таблицу строку
ну и держим этот список под таинственным именем №1

а по логике - читаем список файлов
для каждого файла
читаем файл в список скажем №2
дальше для каждого элемента из списка 1 смотрим вхождение подстроки в элементы списка 2
если элемент найден - сплитаем нужную строку из второго списка и вторая часть - нужное нам значение, которое мы пишем в строчку результата через разделитель
если не найден - пишем в строчку результата NA так же через разделитель

строчку результата добавляем в таблицу
 
  • Спасибо
Реакции: CHADREX и ArtemAMA
Тоже очень интересен данный вопрос. Так как постоянно сталкиваюсь с необходимостью парсинга ИМ. В Content Downloader эта тема реализована в виде макроса DYNAMICVALUES. Но хотелось бы нечто подобное на зенке, так как CD пробивает далеко не все ресурсы, а зенка может пробить практически все. Но приходится изобретать велосипед.
Может кто-то нашел какой-то более простой способ парсинга не константных характеристик интернет магазинов?
 
Присоединяюсь, есть ли способ? Неверняка, если не зенкой, то имеется какой-нибудь сниппет.
 
Можно более менее универсальный составить запрос на парсинг характеристик в определенном магазине
и складывать их к примеру в json формате в реляционную базу банных или в mongodb в виде обьектов.
А затем вторым проектом вытаскивать из базы нужные значения и записывать в файл таблицы.
 
Очень часто бывают динамические характеристики, то есть у одного товара есть какая то опция, у другого нет, но они находятся в одной категории и тогда на помощь приходит "ассоциативный массив", где key: имя зарактеристики; value: значение харрактеристики.

В цикле формируется строка заголовков, которая в последующем сравнивается и поставляются значения, по их местам.

Подробнее: http://www.codenet.ru/progr/cpp/dynamic-arrays-c-sharp.php
 
Тоже очень интересен данный вопрос. Так как постоянно сталкиваюсь с необходимостью парсинга ИМ. В Content Downloader эта тема реализована в виде макроса DYNAMICVALUES. Но хотелось бы нечто подобное на зенке, так как CD пробивает далеко не все ресурсы, а зенка может пробить практически все. Но приходится изобретать велосипед.
Может кто-то нашел какой-то более простой способ парсинга не константных характеристик интернет магазинов?
Прилагаю шаблон парсинга характеристик товаров интернет-магазина в столбцы таблицы на Zennoposter.
В отличии от DYNAMICVALUES создание заголовков свойств и запись значений свойств происходит не в конце парсинга, а в момент создания строки товара.
Реализация довольно простая на кубиках Zennoposter, на C# только получение номера строки списка Индексы заголовков.
Имеем два списка Свойства2 (список характеристик) и Индексы заголовков (все заголовки таблицы).
Работаем в цикле со списком характеристик, каждый цикл получаем строку заголовков таблицы в список Индексы заголовков. Узнаем номер столбца свойства из списка Индексы заголовков и записываем значение свойства в нужный столбец. Если свойства нет в списке Индексы заголовков - создаем новый заголовок в таблице.
 

Вложения

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

Похожие темы

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