Парсинг данных. Часть 2

3 минуты на чтение

В части мы рассмотрели как можно пропарсить данные, не используя регулярные выражения. Мы даже написали свою функцию парсинга данных, которую можно будет использовать в данной статье, но я обойдусь без нее, а Вы сможете ею воспользоваться, если конечно захотите. Так вот в чем суть данного вопроса, мы в данной статье пропарсим данные из html-страниц, а именно получим адресс какой-нибудь ссылки, которая присутствует на странице. Это я все веду к тому, что будет статья про то, как получить капчу с какого-нибудь сайта, и при этом нам понадобиться парсинг страниц. Но урок по парсингу страниц не закончатся, не забыли про регулярные выражения? их плюсы, и как использовать в Delphi-проектах. Ну что теперь приступим, подготовим нашу форму и на форму «поставим» следующие компоненты:

  • TidHTTP
  • TidAntiFreeze
  • TButton

Думаю вы все знаете уже где находятся данные компоненты. Если нет, то напомню только про 2

  • TIdHTTP — Indy Clients
  • TidAntiFreeze — Indy Misc

Так все готова теперь можно приступать. Для начала нам нужно получить текст самой страницы, для этого мы и будем использовать TidHTTP, на событие Button1 - OnClick напишем следующий код:

procedure TForm1.Button1Click(Sender: TObject);
var
St:WideString;
begin
try
St:=IdHTTP1.Get('https://devdelphi.ru/?p=30');
ShowMessage(St);
except
on e:Exception do
end;
end;

Здесь мы получаем код страницы, и выводим сообщение, увидем весь html-код нашей страницы.

Далее пропарсим нашу страницу, найдем ссылку вот эту - https://devdelphi.ru/?p=16, для этого дополним наш код

procedure TForm1.Button1Click(Sender: TObject);
var
St:WideString;
begin
try
St:=IdHTTP1.Get('https://devdelphi.ru/?p=30');
Delete(St,1,pos('<span style="color: #0000ff;"><a href="',St)+length('<span style="color: #0000ff;"><a href="')-1);
Delete(St,pos('">',St),length(St));
ShowMessage(St);
except
on e:Exception do
end;
end;

То есть, парсинг мы уже проходили, и тут тоже особо проблем не должно быть. Просто ищем уникальное значение до какого мы можем пропарсить и после, то есть нам надо получить данные исходя из уникальных промежутков, в которых находятся наши данные. Исходники скидывать не буду, так как тут ничего сложно, можете сами написать что-нибудь на подобии сборщик всех внутренних ссылок с определенной страницы сайта. Это Вы сможете сделать зациклить все или используя метки. Ждем статью о парсинге с помощью регулярных выражений и получени каптчи в TImage.

Facebook Vk Ok Twitter LinkedIn Telegram

Похожие записи:

Продолжаем работу с базами данных. На этот раз, хотел бы рассмотреть фильтрацию данных в БД. Вообще, хотелось бы поговорить, для чего она предназначена, а также способы фильтрации данных, другими словами поиска данных в БД, с использованием технологии ADO. Как...
База данных в Delphi - это коллекция структурированных данных, которые могут быть организованы, хранены, обновлены и извлечены с помощью специальных программных средств. В Delphi вы можете использовать различные типы баз данных, включая локальные и удаленные б...
Delphi - это интегрированная среда разработки программного обеспечения (IDE) для создания Windows-приложений на языке Object Pascal. Delphi имеет встроенную поддержку для работы с базами данных через различные компоненты и библиотеки. В Delphi для работы с баз...