Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 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
1-1093511776
hgd
2004-08-26 13:16
2004.09.12
Кто подскажет?


14-1092945048
Voprosov_net
2004-08-19 23:50
2004.09.12
Грустно.


14-1092983461
Dimka Maslov
2004-08-20 10:31
2004.09.12
Юридическая задача


14-1092979255
Владислав
2004-08-20 09:20
2004.09.12
Нужна помощь с железом.


3-1092722311
DemonRus
2004-08-17 09:58
2004.09.12
MySQL и ADO





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский