Текущий архив: 2006.04.02;
Скачать: CL | DM;
Внизв Delphi coхранить сайт как текстовый файл Найти похожие ветки
← →
nicksss © (2005-11-24 17:18) [0]Мне нужно в Delphi coхранить сайт как текстовый файл (не html, а сам текст)!
что я только уже не пробывал ...
нашол более-менее оптимальный вариант:
Использую код:
[FONT=Arial]procedure GetHtmlCode(WebBrowser: TWebBrowser; FileName: string);
var
Document: IHTMLDocument2;
PersistFile: IPersistFile;
begin
Document := WebBrowser.Document as IHtmlDocument2;
PersistFile := Document as IPersistFile;
PersistFile.save(StringToOleStr(FileName), true);
if Document <> nil then
form1.Memo1.Text := (Document.all.Item(NULL, 0) as IHTMLElement).outerText; //как текст
form1.Memo2.Text := (Document.all.Item(NULL, 0) as IHTMLElement).outerHTML; //как html
end;[/FONT]
Почти со всеми сайтами всьо нормально,но если в сайте используются скрипты, то "как текст" - нет ничего.
например http://www.kompass.com/kinl/index.php
← →
Yurka (2005-11-24 22:19) [1]используй NMHTTP...
NMHTTP1.Get("host/site") ;
memo1.Lines.Clear;
memo1.Text:=NMHTTP1.Body;
memo1.lines.savefromfile("file");
← →
Yurka (2005-11-24 22:23) [2]и далее можно распозновать href, в новом текстовом поле открывать,
и сохронять...
← →
nicksss © (2005-11-25 12:24) [3]дело в том что сайт использует фреймы(и такой метод не катит, например с http://www.kompass.com/ru/KR004187), я пытаюсь к ним достучатся:
for i := 0 to (WebBrowser1.OleObject.Document.frames.Length - 1) do
memo1.Text:=form1.WebBrowser1.OleObject.Document.frames.item(i).document.queryCommandEnabled("Copy") then
ShowMessage("copy command is enabled for frame no." + IntToStr(i));
но выдает ошыбку: отказано в доступе
помогите пожалуста ...
← →
nicksss © (2005-11-26 17:08) [4]я уже нашол выход...
может кому пригодится:var
HTML_Doc: IHTMLDocument2;
Window: IHTMLWindow2;
oRange1: variant;
i:olevariant;
begin
HTML_Doc := WebBrowser1.Document As IHTMLDocument2;
Window := HTML_Doc.parentWindow As IHTMLWindow2;
i:= edit2.Text; // загружаю имя фрейма
oRange1 := Window.frames.item(i).document.body.innerText;
memo1.Text:=orange1;
end;
Большое спасибо всем за помощь
← →
ANSH © (2005-12-17 20:29) [5]подскажите, пожалуйста:
что за типIHTMLDocument2
?
← →
Cribble (2005-12-20 20:42) [6]Из билиотеки MSHTML.
← →
Cribble (2005-12-20 20:42) [7]Из билиотеки MSHTML.
← →
cd (2005-12-20 20:46) [8]<IMG src="http://decoding.narod.ru/faq/component/webbrowser/../../../picture/logol.gif">
Страницы: 1 вся ветка
Текущий архив: 2006.04.02;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.04 c