![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | 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. |