Форум: "Сети";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
ВнизСпецам по TWebBrowser у Найти похожие ветки
← →
ИМХО © (2004-06-23 11:13) [0]Вопрос, наверняка, ламерский.
Задача такая: нам дается некий URL. Невидимый TWebBrowser должен
выкачать эту страницу со всеми картинками, css-ами, скриптами и прочим хозяйством и локально сохранить все это.
Как это осуществить?
← →
Шаман (2004-06-23 11:21) [1]Есть один хороший совет:
не использовать TWebBrowser :)
← →
ИМХО © (2004-06-23 12:02) [2]А чем пользоваться тогда?
← →
Algol (2004-06-24 14:10) [3]document.execCommand("SaveAs");
← →
ИМХО © (2004-06-24 17:20) [4]Это я пробовал еще в самом начале. Такой способ сохраняет только страницу, а нужно сохранять всё (в папке <filename>.files)
← →
Algol (2004-06-24 19:07) [5]TWebBrowser.ExecWB(OLECMDID_SaveAS,4,FileName)
← →
ИМХО © (2004-06-24 20:04) [6]А что значит 4?
В хэлпе только про 0-3 написано:Constant Value Meaning
OLECMDEXECOPT_DODEFAULT 0 Use the default behavior, whether prompting the user for input or not.
OLECMDEXECOPT_PROMPTUSER 1 Execute the command after obtaining user input.
OLECMDEXECOPT_DONTPROMPTUSER 2 Execute the command without prompting the user.
OLECMDEXECOPT_SHOWHELP 3 Show help for the command, but do not execute it.
← →
ИМХО © (2004-06-24 22:45) [7]
> Algol (24.06.04 19:07) [5]
> TWebBrowser.ExecWB(OLECMDID_SaveAS,4,FileName)
Я извиняюсь, но ты сам пробуешь свои советы?
Он сохраняет только html-страницу, без сопровождающих файлов (картинок, скриптов, стилей)
← →
ИМХО © (2004-06-24 22:48) [8]Еще не могу понять, почему нет параметра для выходного файла? Может, я желаю сохранить в текстовый файл. Может в веб-архив, а сохраняет всегда html. Причем Web Page, HTML only, а не Web Page, complete (что предпочтительнее).
← →
Algol (2004-06-25 12:37) [9]
> Я извиняюсь, но ты сам пробуешь свои советы?
Ага, я не только пробую я их даже использую .)
Только давно это было. Не помню уже че он там сохраняет.
Вообще-то там дело хитрое, диалог сохранения не совпадает с тем, который высвечивается при сохранении вручную. Я тоже помню пытался сохранять всю страницу целиком вот этот фрагмент
TWebBrowser.ExecWB(OLECMDID_SaveAS,4,FileName)
- последнее на чем я остановился в исходнике ))
← →
имя (2004-06-25 21:33) [10]Удалено модератором
← →
имя (2004-06-28 20:05) [11]Удалено модератором
← →
имя (2004-06-28 20:28) [12]Удалено модератором
← →
Piter © (2004-06-30 00:33) [13]Шаман (23.06.04 11:21) [1]
Есть один хороший совет:
не использовать TWebBrowser :)
совет далек от хорошего... ты даже не представляешь всю мощь TWebBrowser
А вообще интересная проблема... можно попробовать использовать код типа того:var
vaIn, vaOut: Olevariant;
CmdTarget: IOleCommandTarget;
begin
if WebBrowser1.Document <> nil then
try
WebBrowser1.Document.QueryInterface(IOleCommandTarget, CmdTarget);
if CmdTarget <> nil then
try
CmdTarget.Exec(PGUID(nil), OLECMDID_SAVEAS, OLECMDEXECOPT_DODEFAULT, vaIn, vaOut);
finally
CmdTarget._Release;
end;
except end;
при этом все равно будет выведено окно сохранения, где пользователь должен выбрать имя файла, тип сохранения...
Можно задать файо по умолчанию определив vaIn - но без окошка все равно не обойтись, имхо... не может так WB сделать...
С другой стороны можно грузить HTML, анализировать его, потом вытягивать картинки. Не так уж это и сложно, как может показаться на первый взгляд. И уж точно осуществимо, всякие оффлайн качалки сайтов с этим прекрасно справляются...
← →
Piter © (2004-06-30 00:35) [14]Да, сразу хочу предупредить про грабли. Если в настройках IE стоит не показывать картинки, то WebBrowser их тоже не будет загружать.
Это по умолчанию... можно обойти такой факт...
← →
leonidus (2004-07-06 09:09) [15]TWebBrowser очень мошная штука, но напрямую зависимот от текущих настроек и в качестве ядра для скачивания чего либо из интрнета да еще без ведома юзере совершенно не подходит, взять хотябы щелчки которые появляются при переходе со траницы на страницу...
← →
Landgraph © (2004-07-06 11:35) [16]Точно не знаю, может ли он сохранять как вам надо, но вообще компонент оч. хорошо развитый. Большинство вопросов возникающих в конференциях реализованы в готовых функциях:
http://www.euromind.com/iedelphi/
Спросить EmbeddedWB =)
← →
Плохиш © (2004-07-06 11:49) [17]
> leonidus (06.07.04 09:09) [15]
> TWebBrowser очень мошная штука, но напрямую зависимот от
> текущих настроек и в качестве ядра для скачивания чего либо
> из интрнета да еще без ведома юзере совершенно не подходит,
А что, обсуждение создания вредоносных програм, здесь уже разрешено?
← →
Jurijs © (2004-07-06 20:15) [18]На delphi.about.com есть такая статья, как раз по твоему вопросу:
http://delphi.about.com/library/weekly/aa062904a.htm
Описывется способ сохранения страницы со всей графикой в один файл - Web archive, single file (*.mht).
Код такой
uses CDO_TLB, ADODB_TLB;
...
procedure WB_SaveAs_MHT(WB: TWebBrowser; FileName: TFileName);
var
Msg: IMessage;
Conf: IConfiguration;
Stream: _Stream;
URL : widestring;
begin
if not Assigned(WB.Document) then Exit;
URL := WB.LocationURL;
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 *)
и использовние:
//first navigate
WebBrowser1.Navigate("http://delphi.about.com");
//then save
WB_SaveAs_MHT(WebBrowser1,"c:\WebBrowser1.mht");
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2004.09.12;
Скачать: [xml.tar.bz2];
Память: 0.49 MB
Время: 0.023 c