Довольно много есть задач, при которых нужно собрать все внутренние например ссылки со страницы, или вообще все. Так вот в данной статье мы об этом и поговорим, уже много прошли статей по парсингу и смысл здесь не поменяется, все теже компоненты, все таже наша функция парсинга страниц, здесь нам необходимо только лишь добавить то, чтобы у нас собирались все ссылки, а не первая попавшееся. Для этого я решил использовать метки, самому даже смешно, метки ;))). Ну это дело поправимо, мы можем и цикл использовать, тут как говорится на вкус и цвет товарищей нет. Конечно с регулярными выражениями тут все просто, но я до них пока что не дошел. Так что пробуем и делаем пока, что как умеем.

Повторюсь насчет компонентов, которые нам необходимы

  • TIdHTTP
  • TIdAntiFreeze
  • TButton1
  • TProgressBar

Вроде бы все компоненты перечислил. Итак приступим к нашей работе.

Как всегда получаем текст нашей html-страницы, для дальнейшего парсинга

var
html:WideString;
begin
html:=IdHTTP1.Get('https://zaokomtek.ru');
end;

Часто в теги пишется разные параметры, типа class, id, title и так далее, естественно это все нам ненадо в наших ссылках и поэтому необходимо создать массив этих самих параметров, чтобы от них же затем и избавиться, я выбрал переменную типа TStringList, туда и буду записывать в нее те самые параметры

var
tagHtml:TStringList;
begin
tagHtml:=TStringList.Create;
tagHtml.Clear;
tagHtml.Add('class');
tagHtml.Add('id="');
tagHtml.Add('target');
tagHtml.Add('title');
end;

Готово, отлично продолжим, теперь я хочу сказать, что с точки зрения валидатора ссылки тега заключаются в «двойные кавычки«, но есть сайты, которые и в одинарные заключают, поэтому тут не угадаешь и мы будем выводить ссылки, что находятся в кавычках. Затем это дело можно усовершенствовать и поудалять лишнее. В конечном итоге вот что у меня получилось

Как видите есть дополнительный цикл, который чистит наш тег, от ненужных параметров. В общем можно смело писать программу по сбору ссылок и постепенно усовершенствовать ее.

Хочу заметить, что в настоящее время очень популярно иметь для своего автомобиля прицеп. Так как, имея прицеп, Вы сможете перевозить довольные больше грузы. Существуют отличные фаркопы для ленд ровер, которые отличаются хорошим качеством, надежностью, а самое главное низкой ценой. Установив, на свой автомобиль фаркоп, для Вас это будет только плюсом.

Исходники стать скачать можно тут

Автор статьи - Andrey53

Метки: , , , , ,




К записи “Парсинг данных. Собираем ссылки со страницы” оставлено комментариев: 11.

  1. grayhead:

    Мне показалось, или я увидел там goto? :)

    • Andrey53:

      Вы только код посмотрели? в статье я писал
      Для этого я решил использовать метки, самому даже смешно, метки ))

  2. Міша:

    IdHTTP1.Request.AcceptCharSet что это???))

  3. Міша:

    Thx 2 afftar )))

  4. Алексей seo:

    Как спарсить все ссылки со страницы и вывести их в текст бокс?

  5. QwertyZ:

    To Алексей:
    ListBox.item.add(output);

  6. AlnZ:

    Из-за того, что цикл у вас реализован через goto и выход из цикла происходит по exit, команда не выполняется, и происходит «утечка памяти».
    Правильней было-б все-таки реализовать цикл через repeat until, и выходить из него по break…

  7. AlnZ:

    tagHtml.Free; — не выполняется

Оставить комментарий

Вы можете использовать следующие теги:

*