-
KBO78 (15.02.18 00:17) [0]Доброе время суток форумчане,
Существует одна процедура и приведена на нескольких сайтах (https://www.thoughtco.com/save-a-web-page-as-html-or-mht-1058361), как бы рабочий вариант, сохранения Web cтраницы в mht файл.
Но у меня на одной строке постоянно летит ошибка (я конечно процедуру немного модифицировал: исключил «WebBrowser1»)uses CDO_TLB, ADODB_TLB;
procedure WB_SaveAs_MHT;
var
Msg: IMessage;
Conf: IConfiguration;
Stream: _Stream;
URL : widestring;
FileName: string;
begin
URL := 'http://doilp.com';
filename := 'd:\WebBrowser1.mht';
Msg := CoMessage.Create;
Conf := CoConfiguration.Create;
try
Msg.Configuration := Conf;
Msg.CreateMHTMLBody(URL, cdoSuppressAll, '', '') ;
Stream := Msg.GetStream;
Stream.SaveToFile(FileName, adSaveCreateOverWrite) ;
finally
Msg := nil;
Conf := nil;
Stream := nil;
end;
end; (* WB_SaveAs_MHT *)
на строке «Msg.CreateMHTMLBody(URL, cdoSuppressAll, '', '') ;», возникает ошибка:
Project Project2.exe raised exception class EOleException with message 'The system cannot locate the resource specified'.
Кто знает, почему может система не находить источник? И как избавится от этой ошибки.
Заранее спасибо за ответ.
P.S.
- Delphi 10.2
- ссылка на якобы сайт, но не совсем так, чем проще, тем лучше. В «WebBrowser1» она отображается. -
KilkennyCat © (15.02.18 01:25) [1]Parameters
URL
The full path and file name of the Web page. -
KBO78 (15.02.18 01:55) [2]т.е. если сайта такого не или от не отвечает, то возникает такая ошибка?
-
kilkennycat © (15.02.18 02:15) [3]конечно. его ж нет, нет страницы, нет данных.
Просто добавьте обработку ошибок, чтобы не валило программу. -
KBO78 (15.02.18 02:43) [4]Тут еще одна загвоздка, у методаMsg.CreateMHTMLBody(URL, CdoSuppressNone, '', '') ;
перепробовал все параметры "CdoMHTMLFlags", т.е. ("CdoSuppressNone", "CdoSuppressImages", "CdoSuppressBGSounds", "CdoSuppressFrames", "CdoSuppressObjects", "CdoSuppressStyleSheets", "CdoSuppressAll").
Хотя для полного сохранения страницы, мне нужно значение "CdoSuppressNone", но всеравно, у себя на винте я получаю урезанный файл.
Если я сохраняю страницу с помощью "Opera", то получаю размер 102852b, программа же сохраняет его уже 90103b (при значении "CdoSuppressNone")
Т.е. с "http://u-i-t.ru/info/sohranenie_veb-stranicy_v_formate_html_ili_mht_s_ispolzovaniem_delphi/", при просмотре в "Opera 51.0", я получаю сплошной текст открытый в браузере https://www.dropbox.com/s/bq58biuoskx2sts/not_all_page_web.txt?dl=0.
Хотя, если я его открываю, "Opera 12.8" или "IE 11", то намного лучше, смотреть можно, но также есть не все. В "IE 11" гораздо лучше чем в "Opera 12.8" -
kilkennycat © (15.02.18 03:14) [5]https://ru.wikipedia.org/wiki/MHTML
там много веселого. особенно про разные браузеры. а если учесть, что некоторые сайты могут построить настолько динамичную страницу, что полностью ее вообще не сохранить, то будет еще веселее. -
KBO78 (15.02.18 03:37) [6]А вы с этим компонентом https://www.example-code.com/delphi/mht_saveWebPage.asp, случайно не сталкивались?
-
KilkennyCat © (15.02.18 04:28) [7]
> KBO78 (15.02.18 03:37) [6]
нет.