Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2004.09.12;
Скачать: CL | DM;

Вниз

Спецам по 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;
Скачать: CL | DM;

Наверх




Память: 0.51 MB
Время: 0.066 c
1-1093373344
Rlz
2004-08-24 22:49
2004.09.12
Вопрос по функциям


1-1093340762
shc
2004-08-24 13:46
2004.09.12
где найти TTreeControl


14-1093514830
kogor
2004-08-26 14:07
2004.09.12
У кого есть СД от книги The Tomes of Delphi™ Algorithms and Data?


1-1093430215
Реактор
2004-08-25 14:36
2004.09.12
Приритет программы.


14-1093340593
NikotiN
2004-08-24 13:43
2004.09.12
Алгоритм сортировки