Главная страница
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.48 MB
Время: 0.064 c
15-1142254134
Ironkad
2006-03-13 15:48
2006.04.02
вопрос


15-1141924816
Kerk
2006-03-09 20:20
2006.04.02
Почему моя миранда его пингует?


2-1142333803
webpauk
2006-03-14 13:56
2006.04.02
Определить откуда создавался component


2-1142873806
VAZMan
2006-03-20 19:56
2006.04.02
вывод информации


1-1141017040
Димон
2006-02-27 08:10
2006.04.02
Отправить на печать все строки TMemo