Помогите раскидать строку по переменным

minfin

Client
Регистрация
13.01.2020
Сообщения
138
Благодарностей
92
Баллы
28
Имеются строки, которые могут сильно отличаться. Например:
C#:
17316">Какое-то название</a><div class="badges"></div></div><div class="table-cell" role="cell"><div class="offer-pixel-cell"><div class="target pr-3">Не нужный текст</div><div class="d-flex flex-column prices"><div class="grid-custom-layout"><div class="geo">Россия</div><div class="price">990 RUB</div><div class="rate pr-3">720 ₽</div></div></div></div></div><div class="table-cell text-left min-w-unset" role="cell">—</div><div class="table-cell text-left min-w-unset" role="cell">—</div><div class="table-cell text-left min-w-unset" role="cell">—</div>

13620">Какое-то название</a><div class="badges"></div></div><div class="table-cell" role="cell"><div class="offer-pixel-cell"><div class="target pr-3">Не нужный текст</div><div class="d-flex flex-column prices"><div class="grid-custom-layout"><div class="geo">Россия</div><div class="price">149 RUB</div><div class="rate pr-3">750 ₽</div></div><div class="grid-custom-layout"><div class="geo">Украина</div><div class="price">48 UAH</div><div class="rate pr-3">750 ₽</div></div><div class="grid-custom-layout"><div class="geo">Беларусь</div><div class="price">5 BYN</div><div class="rate pr-3">700 ₽</div></div></div></div></div><div class="table-cell text-left min-w-unset" role="cell">29.34 %</div><div class="table-cell text-left min-w-unset" role="cell">20.38 %</div><div class="table-cell text-left min-w-unset" role="cell">8.26 ₽</div>
Нужно либо раскидать по переменным, либо записать в табличку по столбцам, чтобы в итоге получилось так:
17316 Какое-то название Россия 990 RUB 720 — — —
13620 Какое-то название Россия 149 RUB 750 Украина 48 UAH 750 Беларусь 5 BYN 700 29.34 20.38 8.26
Второй день бьюсь - не получается. Подскажите плиз!
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
13 590
Благодарностей
5 113
Баллы
113
Поищи json на сайте.
 

Mikhail B.

Moderator
Регистрация
23.12.2014
Сообщения
13 590
Благодарностей
5 113
Баллы
113
Так сайт не отдаёт в джесоне. Или я что-то не так делаю :(
Ну тогда регулярки. Закинь список из 1к позиций. Кто нибудь сделает. Может я сделаю, но через несколько часов.

А лучше сам код, только если текста много кидай файлом.
 
  • Спасибо
Реакции: minfin

minfin

Client
Регистрация
13.01.2020
Сообщения
138
Благодарностей
92
Баллы
28
Ну тогда регулярки. Закинь список из 1к позиций. Кто нибудь сделает. Может я сделаю, но через несколько часов.

А лучше сам код, только если текста много кидай файлом.
Прицепил ДОМ
 

Вложения

  • 41,3 КБ Просмотры: 23
  • Спасибо
Реакции: Mikhail B.

radv

Client
Регистрация
11.05.2015
Сообщения
3 040
Благодарностей
1 549
Баллы
113
  • Спасибо
Реакции: minfin

baracuda

Client
Регистрация
19.06.2013
Сообщения
632
Благодарностей
215
Баллы
43
Можно тупинько но уверенно
class="*"
role="*"
</a>
</div>
Это всё удаляем.

а из </div> делаем разделитель
 
  • Спасибо
Реакции: minfin

alex8020

Client
Регистрация
16.08.2016
Сообщения
33
Благодарностей
28
Баллы
18
Каждое значение разделено Tab'ом. Через Split можно раскидать куда надо
C#:
var list = new List<string>();
string dom = instance.ActiveTab.DomText;
MatchCollection col = Regex.Matches(dom, @"(?<=<a\ class=""offer-title""\ href=""/offers/).*?(?=<button)");
foreach(Match el in col)
{
    string text = Regex.Replace(el.Value, @"<div class=""target pr-3"">.*?</div>", "");
    text = Regex.Replace(text, @"<.*?>", "    ").Replace(@""">", "    ").Replace(@"        ", "    ").Replace(@"        ", "    ").Replace(@"        ", "    ");
    list.Add(text);
}
File.WriteAllLines(project.Directory + @"\list.txt", list);
 
Последнее редактирование:
  • Спасибо
Реакции: minfin

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