|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
Парсинг - помогите!
Здравствуйте! Подскажите пожалуйста (помогите кодом) как сделать так, чтобы со страницы спарсить список товаров и цен.
Есть такой код: <a href="https://www.isolux.ru/shpatlevka-universalnaya-gipsovaya-osnovit-versilk-pg34-g-20-kg.html">Шпатлевка универсальная гипсовая Основит Версилк PG34 G 20 кг</a> <span class="price-new">от <span class="num">289,00</span> ₽/шт.</span> <a href="https://www.isolux.ru/shpatlevka-gipsovaya-knauf-fugen-25-kg.html">Шпатлевка гипсовая Кнауф Фуген серая 25 кг</a> <span class="price-new">от <span class="num">410,00</span> ₽/шт.</span> В итоге должно получиться (в Memo): Шпатлевка универсальная гипсовая Основит Версилк PG34 G 20 кг - 289,00 Шпатлевка гипсовая Кнауф Фуген серая 25 кг - 410,00 На странице много таких записей, нужно все спарсить до конца. Заранее благодарю! |
#2
|
||||
|
||||
Вот пример
З.Ы. Ну или такой, G-кодный вариант Код:
procedure TForm1.Button1Click(Sender: TObject); var i: integer; sl: TStrings; s: string; flg: boolean; begin sl:= TStringList.Create; sl.Assign(Memo1.Lines); sl.Text:= StringReplace(sl.Text,'">',#13#10+'|',[rfReplaceAll]); sl.Text:= StringReplace(sl.Text,'</a>',#13#10,[rfReplaceAll]); sl.Text:= StringReplace(sl.Text,'</span>',#13#10,[rfReplaceAll]); sl.Text:= StringReplace(sl.Text,'|от',#13#10,[rfReplaceAll]); Memo2.Clear; flg:= false; for i := 0 to sl.Count-1 do if (sl[i] <>'') and (sl[i][1] = '|') then if not flg then begin s:= Copy(sl[i],2,Length(sl[i])); flg:= true; end else begin flg:= false; Memo2.Lines.Add(s + ' - ' + Copy(sl[i],2,Length(sl[i]))); end; sl.Free; end; Я не понял Вашего вопроса, но всё же Вам на него отвечу! Последний раз редактировалось Alegun, 15.12.2017 в 20:30. |