Парсинг данных. Часть 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. Сегодня мы начнем рассматривать базы данных, которые работают на файлах. Да, сейчас базы данных на файлах не настолько популярны, но раньше они расправлялись с хорошим объемом информ...
Ну что, в первой части и во второй части статей, про сохранение данных TStringGrid в файлы и открытие из файла данных, с последующей загрузкой их в TStringGrid, мы поговорили о сохранение и считывание данных из типизированного файла, а также сохранение и считы...