![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
в Delphi coхранить сайт как текстовый файл
nicksss © (2005-11-24 17:18:00)Мне нужно в 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
cd (2005-12-20 20:46:00) [1]<IMG src=' http://decoding.narod.ru/faq/component/webbrowser/../../../picture/logol.gif'>
Cribble (2005-12-20 20:42:00) [2]Из билиотеки MSHTML.
Cribble (2005-12-20 20:42:00) [3]Из билиотеки MSHTML.
ANSH (2005-12-17 20:29:00) [4]подскажите, пожалуйста:
что за типIHTMLDocument2?
nicksss (2005-11-26 17:08:00) [5]я уже нашол выход...
может кому пригодится:
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;
Большое спасибо всем за помощь
nicksss (2005-11-25 12:24:00) [6]дело в том что сайт использует фреймы(и такой метод не катит, например с 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));
но выдает ошыбку: отказано в доступе
помогите пожалуста ...
Yurka (2005-11-24 22:23:00) [7]и далее можно распозновать href, в новом текстовом поле открывать,
и сохронять...
Yurka (2005-11-24 22:19:00) [8]используй NMHTTP...
NMHTTP1.Get('host/site') ;
memo1.Lines.Clear;
memo1.Text:=NMHTTP1.Body;
memo1.lines.savefromfile('file');