В части мы рассмотрели как можно пропарсить данные, не используя регулярные выражения. Мы даже написали свою функцию парсинга данных, которую можно будет использовать в данной статье, но я обойдусь без нее, а Вы сможете ею воспользоваться, если конечно захотите. Так вот в чем суть данного вопроса, мы в данной статье пропарсим данные из 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://zaokomtek.ru/?p=30');
ShowMessage(St);
except
on e:Exception do
end;
end;
Здесь мы получаем код страницы, и выводим сообщение, увидем весь html-код нашей страницы.
Далее пропарсим нашу страницу, найдем ссылку вот эту - https://zaokomtek.ru/?p=16, для этого дополним наш код
То есть, парсинг мы уже проходили, и тут тоже особо проблем не должно быть. Просто ищем уникальное значение до какого мы можем пропарсить и после, то есть нам надо получить данные исходя из уникальных промежутков, в которых находятся наши данные. Исходники скидывать не буду, так как тут ничего сложно, можете сами написать что-нибудь на подобии сборщик всех внутренних ссылок с определенной страницы сайта. Это Вы сможете сделать зациклить все или используя метки. Ждем статью о парсинге с помощью регулярных выражений и получени каптчи в TImage.
Хочу заметить, что в настоящее время очень популярны пластиковые окна, которые кроме того, что отличаются красивым дизайном, так и зимой утепляют очень хорошо, летом отлично пропускают холодный воздух, а самое главное, что не пропускают звуковые шумы, Вы всегда сможете отдыхать в спокойствии. |
Автор статьи - Andrey53
Метки: delphi, idAntifreeze, Idhttp, парсинг, парсинг html-страниц, парсинг данных
Здравствуйте Andrey53, у меня возникла токая проблема, при загрузке html страницы в memo отображается " заместо «, что
делать??? извеняюсь если не туда написал, просто незнал куда писать….
Здравствуйте Andrey53, у меня возникла токая проблема, при загрузке html страницы в memo отображается
"
заместо"
что делать??? извеняюсь если не туда написал, просто незнал куда писать….Здравствуйте, как я понял — это необходимо Вам вместо » — получить «, если так, то предлагаю делать замену » путем кода символа «, делается это так
То есть заменять символ — «, на chr(c)