Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2006.04.02;
Скачать: [xml.tar.bz2];

Вниз

в 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.037 c
3-1139106718
TheEd
2006-02-05 05:31
2006.04.02
SELECT ID FROM <SomeTable> WHERE ID IN (3, 7, 5, ...)


2-1142601250
Chall
2006-03-17 16:14
2006.04.02
Sos! Необходимо сделать отчет вида...


15-1141913753
Dok_3D
2006-03-09 17:15
2006.04.02
Фильтры для водопроводной воды


1-1140940938
Mishenka
2006-02-26 11:02
2006.04.02
Автоматическое изменение размеров картинки в TImage


15-1141998023
Cashmare
2006-03-10 16:40
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
Английский Французский Немецкий Итальянский Португальский Русский Испанский