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

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

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

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

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

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

webbrowser1.Navigate('http://www.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 Да и незабываем подписываться на рассылку !!!

 



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

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

Максим 13 Dec 2008 в 00:00 #
1.Как сделать так, чтобы при сохранение он предлагал форматы?
2.Как сделать так, чтобы он сохранял в юникоде, т.е. чтобы рус. шрифт отображался?
Компилятор 31 Oct 2008 в 00:00 #
в DELPHI7 нет свойства Document для WB? тож не прет...
Иван 31 Oct 2008 в 00:00 #
Да народ у вас и в правду руки не отуда растут, >>Компилятор вообще вон какую гипотезу выдвинул. Неужели трудно периписть все как написанно. Код Этот в Delphi 7 РАБОТАЕТ 100%
Евгений 30 Oct 2008 в 00:00 #
У меня в Делфи7 этот код не работает(. Может у меня руки не оттуда растут?)
-м- 20 Oct 2008 в 00:00 #
хотелось бы поподробней осветить работу с TWebBrowser в делфи, а точнее общими усилиями создать нормальный справочик по данному компоненту.
вот основные проблемы которые появляются при работе с компонентом:
- не убирается вывод ошибок (ошибки в скриптах на сайте)
- не понятно как получить html код
- невозможно програмно нажать кнопки на mail.ru
- мало информации такого вида WebBrowser.script.item[1].value

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

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