Сохранить исходник HTML из TWebBrowser

Опубиковано: 14.07.2008 г., автор: , просмотров: 48247

    Delphi сохранение html кода из WebBrowser

    Сегодня мы научимся сохранять исходник HTML из TWebBrowser.Document на диск. Делается это очень просто и я думаю трудностей с этим у вас возникнуть недолжно.

    Ну что поехали, как всегда для начала открываем Delphi и первое что нам нужно будет сделать это дописать в раздел uses ActiveX. Двигаемся дальше теперь кидаем на форму две кнопочки (button) с закладки standart, компонент SaveDialog с закладки Dialog и компонент webBrowser с закладки internet. Так с компонентами вроде разобрались

    Создаем обработчик событий(onclick) на первой кнопке и в нем прописываем следующий код:

    webbrowser1.Navigate('https://delphiexpert.ru');

    Так теперь переходим на самый верх и сразу же после public пишем:

    procedure SaveHTMLSourceToFile(const FileName: string; WB: TWebBrowser);

    Нажимаем комбинацию клавиш Ctrl+Shift+C

    И Delphi автоматически генерирует процедуру, получиться должно примерно так:

    procedure TForm1.SaveHTMLSourceToFile(const FileName: string;
    WB: TWebBrowser);
    begin

    end;

    Сейчас давайте пропишем действия, которые будет выполнять данная процедура, а именно она должна сохранять текущий открытый в компоненте webbrowser документ в виде исходника HTML

    procedure TForm1.SaveHTMLSourceToFile(const FileName: string;
    WB: TWebBrowser);
    var
    PersistStream: IPersistStreamInit;
    FileStream: TFileStream;
    Stream: IStream;
    SaveResult: HRESULT;
    begin
    PersistStream := WB.Document as IPersistStreamInit;
    FileStream := TFileStream.Create(FileName, fmCreate);
    try
    Stream := TStreamAdapter.Create(FileStream, soReference) as IStream;
    SaveResult := PersistStream.Save(Stream, True);
    if FAILED(SaveResult) then
    MessageBox(Handle, 'Fail to save HTML source', 'Error', 0);
    finally
    FileStream.Free;
    end;
    end;

    Вот практически и все осталось только создать обработчик событий (onClick) на второй кнопке и прописать там:

    if SaveDialog1.Execute then
    SaveHTMLSourceToFile(SaveDialog1.FileName, WebBrowser1);

    Запускаем программу, жмем сначала на первую кнопку, ждем пока в компоненте WebBrowser загрузиться страница.

    Теперь нажимаем на вторую кнопку и сохраняем загруженную страницу, в Поле Имя файла: вводим например delphi.txt или expert.html

    На этом все, до встречи DelphiExpert.ru

    P.S Да и незабываем подписываться на рассылку !!!

     



    Похожие материалы

    Последние из рубрики

    vbv 03 Jan 2020 в 18:31 #
    Если загрузить в webbrowser документ и отредактировать в нём то, сохраняется тот документ что был загружен до изменения. Как побороть эту бяку?
    Алексей 26 Jun 2013 в 00:00 #
    Благодарю,но чуток код переставить пришлось в делфи 7.
    Elements 28 Dec 2012 в 00:00 #
    Delphi ругается на типы: IPersistStreamInit, TFileStream, IStream. Кто объяснит в чем дело?
    Antispamer 17 Oct 2012 в 00:00 #
    HTML - это конечно не плохо, но я тут подумал над PHP и я думаю что можно создать браузер что бы он мог показать пользователю PHP код. Или например что бы программа отключала сервер и скачивала PHP файл любого сайта которій написан на PHP - как вы думаете это возможно ?

    Угу, это тоже самое, что в 7 лет стать президентом за один день:)
    PHP отображает только результат, тем более в html, а чтобы увидеть исходный код, нужно зайти по FTP на сервер, и смотреть файлы.Тоесть, тебе не сюда, а сюда xakep.ru ;D
    Pavel 26 Mar 2012 в 00:00 #
    Сохраняется вместе с картинками или только текст?

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