Нужна помощь по созданию парсера. C#

snake

Client
Регистрация
06.07.2015
Сообщения
31
Благодарностей
1
Баллы
8
Пишу парсер который со страницы выбирает N-е кол-во, однотипных объектов.

Например страница с товарами. На одной странице содержится несколько карточек разных товаров.

Допустим из каждой карточки нужно вытащить:
1) Название
2) Цена
3) Ссылка

Как я себе представляю алгоритм:
1) Создаём класс карточки
Код:
public class CardProduct
{
        public string name;
        public string cost;
        public string url;
}
2) Через текстовый кубик регуляркой выдёргиваем хтмл карточек и помещаем в список
3) Прохожу циклом по списку
  • Кубиком выдёргиваем название и ложим в переменную {name}
  • Кубиком выдёргиваем цену и ложим в переменную {cost}
  • Кубиком выдёргиваем ссылку и ложим в переменую {url}
  • В кубике создаём объект CardProduct и заполняем его данными из переменных выше

И вот дальше у меня затык... Как создаётся коллекция объектов(например Products), содержащая объекты CardProduct? Чтобы её можно было пополнять в цикле и в последующем упаковать её в json.

P.S. Упаковывать в json буду с помощью Newtonsoft Json
 

Yuriy Zymlex

Moderator
Команда форума
Регистрация
24.10.2016
Сообщения
6 489
Благодарностей
3 356
Баллы
113
Например:
C#:
public class CardProduct
{       
        public readonly string Name;
        public readonly int Cost;
        public readonly string Url;

        public CardProduct(string name, int cost, string url)
        {
            Name = name;
            Cost = cost;
            Url = url;
        }
}
Как создаётся коллекция объектов(например Products), содержащая объекты CardProduct?
Для примера, 3 разных C# экшена:
C#:
// создание, Context сбрасывается после каждого изменения кода в шаблоне
project.Context["Коллекция"] = new List<CardProduct>();
C#:
var list = (List<CardProduct>)project.Context["Коллекция"];
// добавление
list.Add(new CardProduct("Name", 12, "http://"));
C#:
var list = (List<CardProduct>)project.Context["Коллекция"];
// получение
project.SendInfoToLog(list[0].Name + " " + list[0].Cost.ToString() + " " + list[0].Url);
Упаковывать в json буду с помощью Newtonsoft Json
Был бы тут F# с его фичами, по типу JsonProvider, многое было бы куда легче. Благо можно подключать сборки.
 
  • Спасибо
Реакции: snake

snake

Client
Регистрация
06.07.2015
Сообщения
31
Благодарностей
1
Баллы
8
Спасибо, всё отлично работает!
 

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