Как получить html код страницы в Delphi?

Получаем исходный код страницы сайта в Delphi

Зачастую приходится интегрировать программы с web-страницами и наоборот. Для этого используются различные программные решения.

Не так давно остро стоял вопрос, как получить исходный код веб-страницы в поле TMemo в Delphi 7. Это было необходимо, для дальнейшей обработки данных размещенных на ней.

Я потратил немало времени на поиски нужной информации, в итоге реализация была найдена. Чтобы в следующий раз не повторять поиск, я решил написать статью о том, как получить html код страницы в Delphi. Данные способ реализовывается быстро и работает отлично!

На различных форумах программистов, приводятся огромные портянки кода, в которых порой не все понятно, а времени разбираться совсем нет. На самом деле, задача, по сути, тривиальная, и в Delphi наверняка есть стандартные компоненты для её решения. Мое предположение оказалось верным.

Итак, пошагово рассказываю, как получить исходный код страницы сайта в Delphi в поле TMemo.

На форму помещаем 3 компонента:

  • Из вкладки «Standard»: текстовое поле Memo (StdCtrls) и обычную кнопку Button (StdCtrls).
  • Из вкладки «Indy Clients» добавляем компонент TIdHTTP.

Теперь осталось самое простое, написать код. Нажимаем двойным щелчком на Button1 и в обработчике события OnClick пишем следующий код:

memo1.Lines.Text:= IdHttp1.Get (‘URL страницы, исходный код которой необходимо загрузить’);

После запуска программы нажимаем на кнопку, и программа отправляет запрос на указанный URL и выдает html код страницы.

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

procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Lines.Text:= IdHttp1.Get (‘http://mrwildwolf666.name/’);
end;

Внешний вид моей программы можно посмотреть на картинке к статье.

Запускаю программу, нажимаю на кнопку «Загрузить». Готово! Исходный код страницы блога загружен в TMemo.

Задача решена! Быстро, просто и никаких «портянок», всего одна строка.

Если у вас будут возникать вопросы по данному методу, пишите их в комментарии. Отвечу на них и постараюсь помочь.

Запись опубликована в рубрике Программирование с метками . Добавьте в закладки постоянную ссылку.

9 комментариев: Как получить html код страницы в Delphi?

  1. Люци говорит:

    Почему-то код (и соответственно содержание) загружаемой так страницы отличается от загруженной через браузер. Подробнее: на странице, которую нужно загружать, — перечень товаров интернет-магазина, полученный через поиск. Через браузер на тот же поисковый запрос выдается товаров больше, чем в IdHttp. Почему и как исправить?

  2. Serega говорит:

    indy не годится для современных сайтов — отстает в развитии на пару/тройку лет. не поддерживает скрипты, CSS и прочие радости. так что в итоге вместо исходного кода страницы можно получить кастрированную версию вплоть до 1-2 символов. Да еще и с вложенными фреймами проблемы. Вывод: для студентов такое решение подойдет, реальные проекты требуют вынимать код из полномасштабного ВНЕШНЕГО браузера.

  3. Алексей говорит:

    Попробывал, какой-то не тот код скачивается, там нет ссылок.

  4. Egor говорит:

    А если нужно загрузить, изменить, вставить в код сайта, и нажать кнопку применить измененения (браузер Опера)?
    Подскажите пожалуйста, очень сильно нужно.
    Буду очень признателен если кинете ссылку на статьи!!!

  5. Юрий говорит:

    А если требуется загрузить страницу не из интернета, а уже сохраненную?

  6. kotan говорит:

    Выдает ошибку memo1.Lines.Text:= IdHttp1.Get (ЗДЕСЬ‘http://mrwildwolf666.name/’);

Добавить комментарий