Главная страница
    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
1-1141236048
X-Man
2006-03-01 21:00
2006.04.02
Заставить exe на Delphi грузить dll на c++


2-1142945320
Евстегней
2006-03-21 15:48
2006.04.02
Бинарный код


2-1142502686
trych
2006-03-16 12:51
2006.04.02
C++ и Паскаль


2-1142407623
KyRo
2006-03-15 10:27
2006.04.02
TStringList


3-1139228614
SdrCoder
2006-02-06 15:23
2006.04.02
DBExpress &amp; Exception





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