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

minfin

Client
Регистрация
13.01.2020
Сообщения
144
Благодарностей
99
Баллы
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
Сообщения
14 304
Благодарностей
5 421
Баллы
113
Поищи json на сайте.
 

traffman

Client
Регистрация
30.11.2018
Сообщения
90
Благодарностей
98
Баллы
18
Какая ПП?
 

minfin

Client
Регистрация
13.01.2020
Сообщения
144
Благодарностей
99
Баллы
28

Mikhail B.

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

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

minfin

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

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

Вложения

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

radv

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

baracuda

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

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

alex8020

Client
Регистрация
16.08.2016
Сообщения
37
Благодарностей
39
Баллы
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)