Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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
2-1141726763
nap<>
2006-03-07 13:19
2006.04.02
UPX


15-1141385417
КаПиБаРа
2006-03-03 14:30
2006.04.02
А программисты программисты...


2-1142841491
!*!*!
2006-03-20 10:58
2006.04.02
Потоки (Thread)


2-1142912102
boalse
2006-03-21 06:35
2006.04.02
Биты и байты


15-1142224430
Pazitron_Brain
2006-03-13 07:33
2006.04.02
Как уменьшить скорость соединения с Интернетом?





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский