Код:
Link:='http://site.ru/'; //"маска" ссылки
Memo1.Lines.Append(IdHTTP1.Get('http://site.ru/')); //Получаем исходный код страницы
for i:=0 to Memo1.Lines.Count-1 do
if pos(Link, Memo1.Lines[i])<>0 then
begin
fullLink:=Copy(Memo1.Lines[i], pos(Link, Memo1.Lines[i]), Length(Link)+100); //копируем ссылку и некоторый код после нее.
Memo2.Lines.Add(fullLink); //добавляем это в Мемо
//в этом цикле приводим ссылку в человесческий вид
for i:=0 to Memo2.Lines.Count-1 do
begin
fullLink:=Memo2.Lines[i];
Delete(fullLink, Pos('"', Memo2.Lines[i]), 200);
Memo2.Lines[i]:=fullLink;
end;
В итоге в Мемо2 получишь все ссылки по маске с загруженой сранице.
Далее переходишь в цикле по ссылкам и так же копируешь ссылки оттуда если надо))