TWebBrowser и HTML

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

OTELLO
Сообщения: 59
Зарегистрирован: 11 дек 2004, 11:52
Откуда: Питеррр
Контактная информация:

Всем приветик,такой вопрос у меня-как можно в этом компоненте узнать во время работы программы html код загруженной странички,и например,записать его в файл? (хотя на самом деле просто нужно его узнать и найти в нем отдельные элементы,скажем теги <img>)

Либо как это можно сделать без TWebBrowser-напрямую,подключаясь к Internet Explorer, например. Может какие- нибудь компоненты есть сторонние, кот. позволяют сие творить, подскажите кто чем может...

Заранее спасибки...
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

Сейчас лень код работающий искать в дебрях винта. Нужно соответствующие интерфейсы COM'овские дёргать.
Посмотри тут: http://www.euromind.com/iedelphi/
Если не найдёшь - актуализируй тему, с утреца кину.
Даже самый дурацкий замысел можно воплотить мастерски
OTELLO
Сообщения: 59
Зарегистрирован: 11 дек 2004, 11:52
Откуда: Питеррр
Контактная информация:

Нашёл я там компонент TIEDownLoad, позволяет качать любые файлы как напрямую,так и в поток, но это не то. Понимаешь- мне нужно написать программу, которая будет сама сохранять рисунок с загруженной в данный момtyn в IE странчки, рисунок по выбору... Вот...
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Код: Выделить всё

var 
  doc: IHTMLDocument2; 
begin 
  doc:=WebBrowser1.Document; 
  doc.<тут после точки вывалится список со свойствами IHTMLDocument2 там найдете HTML и многое другое> 
end; 
Однако, после того как Вы уточнили свой вопрос, думаю, что IHTMLDocument2 - это не тот интерфейс, который Вам нужен....
Надо что-то другое, что даст уже готовые картинки.
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

До картинки я не знаю как достучаться, а с сохранением самой страницы всё довольно просто:

Код: Выделить всё

procedure TForm1.Button2Click(Sender: TObject);
var
  Stream: IStream;
  PersistStream: IPersistStreamInit;
  FileStream: TFileStream;
begin
  FileStream:=TFileStream.Create('c://test.html',fmCreate);
  Stream:=TStreamAdapter.Create(FileStream);
  PersistStream:=WebBrowser1.Document as IPersistStreamInit;
  PersistStream.Save(Stream,true);
  FileStream.Free;
end;
Все проверки оставляю на твоей совести :)

Картинки, как промежуточный вариант, можно из кеша тягать.

Я позже попытаюсь найти и про картинки.
Даже самый дурацкий замысел можно воплотить мастерски
Аватара пользователя
AiK
Сообщения: 2287
Зарегистрирован: 13 фев 2004, 18:14
Откуда: СПб
Контактная информация:

В общем - идея такая: с указанной ссылки нужно утащить компонент, который позволяет обрабатывать события браузера.
В каком-нибудь onBeforeNavigate2 запоминать документы, связанные с картинками. А потом таким же макаром, как в предыдущем сообщении, сохранять эти картинки. Единственный непродуманный момент - как определять какую именно картинку сохранять. А вообще, если не отключать принудительно контекстное меню, но это можно и так по правой кнопке мыши сделать :)
Даже самый дурацкий замысел можно воплотить мастерски
OTELLO
Сообщения: 59
Зарегистрирован: 11 дек 2004, 11:52
Откуда: Питеррр
Контактная информация:

На самом деле в голову пришла безумная мысль, а именно:
скаченный файл открыть методом loadFromFile какого- нибудь TStringList'a, в нем уже отыскать что требуется по нужному алгоритму и закачать уже то, что найдено, например тот же рисунок...

Конечно это обходнми путями, но всё таки решение, как думаете?
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

нибудь TStringList'a, в нем уже отыскать что требуется
Мы помоему на разных языках говорим....
Я правильно понял, что Вы все-таки решили искать элементы IMG в тексте HTML?
Тогда просто используйте интерфейс IHTMLDocument2 как я писал выше.

С помощью этого интерфеса вы получите и текст HTML, а также массу всего интересного в том числе коллекцию images. Однако это не сами битмапы, так как у элемента Image есть только одно полезное свойство - ToString...

Т.е. не надо ничего искать.
См. мое предыдущее сообщение.
OTELLO
Сообщения: 59
Зарегистрирован: 11 дек 2004, 11:52
Откуда: Питеррр
Контактная информация:

Да Вы абсолютно меня правильно поняли,именно это мне и надо,тока я наверное совсем дурак и не могу понять насчёт интерфейса-что надо написать в разделе uses чтобы интерфейс стал понятен???
Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Поищите в среди в папке Borland строку "IHTMLDocument"... Если мне правильно изменяет склероз, это должен быть mshtml.pas. Соответственно, писать надо будет mshtml.
Ответить