![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как сохранить интернет-страницу из TWebBrowser с рисунками? [D6, WinXP]
Volf_555 © (2006-01-12 22:15:00)Как сохранить интернет-страницу из TWebBrowser с рисунками на диск, то есть - полностью?
Dark Lord (2006-01-13 20:48:00) [1]Этот метод я уже пробовал - сохраняет рисунки в той же директории, что и хтмл и при открытии он рисунков не видит!
Rouse_ (2006-01-13 16:10:00) [2]
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, ActiveX, MSHTML_TLB, StdCtrls, UrlMon;
type
TForm1 = class(TForm)
WebBrowser1: TWebBrowser;
Button1: TButton;
procedure FormCreate(Sender: TObject);
procedure Button1Click(Sender: TObject);
private
procedure SaveAllImages;
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
WebBrowser1.Navigate('www.ya.ru');
end;
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0,
nil) = 0;
except
Result := False;
end;
end;
procedure TForm1.SaveAllImages;
var
k, p: Integer;
Source, dest, ext: string;
begin
for k := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do
begin
Source := WebBrowser1.OleObject.Document.Images.Item(k).Src;
p := LastDelimiter('.', Source);
ext := UpperCase(Copy(Source, p + 1, Length(Source)));
if (ext = 'GIF') or (ext = 'JPG') then
begin
p := LastDelimiter('/', Source);
dest := 'C:\' + Copy(Source, p + 1, Length(Source));
DownloadFile(Source, dest);
end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
HTMLDocument: IHTMLDocument2;
PersistFile: IPersistFile;
begin
SaveAllImages;
HTMLDocument := WebBrowser1.Document as IHTMLDocument2;
PersistFile := HTMLDocument as IPersistFile;
PersistFile.Save(StringToOleStr('c:\SavedFile.html'), System.True);
end;
end.
Dark Lord (2006-01-13 15:29:00) [3]Я так делал - то есть объединял сохранение самого файла и рисунков, так у меня потом этот хтмл своих рисунков не видит. Как сохранить именно так, чтобы к файлу создавалась зависимая папка, в которую сохраняются все ресурсы или хотя бы толлько рисунки - типа "Сохранить страницу полностью" как в ИЕксплорере?
ZeFiR (2006-01-12 22:58:00) [4]Бери сразу TEmbeddedWB последней версии
В нем пишеться примерно следующее:
WB.SaveDialog;
Ели ты такой настойчивый насчет стандартного TWebBrowser, то вот примерчик... правда сохраняет только картинки, но думаю докумекаешь, как все это объединить;)
uses
UrlMon;
function DownloadFile(SourceFile, DestFile: string): Boolean;
begin
try
Result := UrlDownloadToFile(nil, PChar(SourceFile), PChar(DestFile), 0,
nil) = 0;
except
Result := False;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
k, p: Integer;
Source, dest, ext: string;
begin
for k := 0 to WebBrowser1.OleObject.Document.Images.Length - 1 do
begin
Source := WebBrowser1.OleObject.Document.Images.Item(k).Src;
p := LastDelimiter('.', Source);
ext := UpperCase(Copy(Source, p + 1, Length(Source)));
if (ext = 'GIF') or (ext = 'JPG') then
begin
p := LastDelimiter('/', Source);
dest := ExtractFilePath(ParamStr(0)) + Copy(Source, p + 1,
Length(Source));
DownloadFile(Source, dest);
end;
end;
end;