Страница 1 из 2
TWebBrowser и HTML
Добавлено: 11 окт 2005, 23:39
OTELLO
Всем приветик,такой вопрос у меня-как можно в этом компоненте узнать во время работы программы html код загруженной странички,и например,записать его в файл? (хотя на самом деле просто нужно его узнать и найти в нем отдельные элементы,скажем теги <img>)
Либо как это можно сделать без TWebBrowser-напрямую,подключаясь к Internet Explorer, например. Может какие- нибудь компоненты есть сторонние, кот. позволяют сие творить, подскажите кто чем может...
Заранее спасибки...
Добавлено: 12 окт 2005, 03:25
AiK
Сейчас лень код работающий искать в дебрях винта. Нужно соответствующие интерфейсы COM'овские дёргать.
Посмотри тут:
http://www.euromind.com/iedelphi/
Если не найдёшь - актуализируй тему, с утреца кину.
Добавлено: 12 окт 2005, 08:21
OTELLO
Нашёл я там компонент TIEDownLoad, позволяет качать любые файлы как напрямую,так и в поток, но это не то. Понимаешь- мне нужно написать программу, которая будет сама сохранять рисунок с загруженной в данный момtyn в IE странчки, рисунок по выбору... Вот...
Добавлено: 12 окт 2005, 20:22
Naeel Maqsudov
Код: Выделить всё
var
doc: IHTMLDocument2;
begin
doc:=WebBrowser1.Document;
doc.<тут после точки вывалится список со свойствами IHTMLDocument2 там найдете HTML и многое другое>
end;
Однако, после того как Вы уточнили свой вопрос, думаю, что IHTMLDocument2 - это не тот интерфейс, который Вам нужен....
Надо что-то другое, что даст уже готовые картинки.
Добавлено: 12 окт 2005, 21:26
AiK
До картинки я не знаю как достучаться, а с сохранением самой страницы всё довольно просто:
Код: Выделить всё
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;
Все проверки оставляю на твоей совести
Картинки, как промежуточный вариант, можно из кеша тягать.
Я позже попытаюсь найти и про картинки.
Добавлено: 12 окт 2005, 21:43
AiK
В общем - идея такая: с указанной ссылки нужно утащить компонент, который позволяет обрабатывать события браузера.
В каком-нибудь onBeforeNavigate2 запоминать документы, связанные с картинками. А потом таким же макаром, как в предыдущем сообщении, сохранять эти картинки. Единственный непродуманный момент - как определять какую именно картинку сохранять. А вообще, если не отключать принудительно контекстное меню, но это можно и так по правой кнопке мыши сделать

Добавлено: 12 окт 2005, 23:14
OTELLO
На самом деле в голову пришла безумная мысль, а именно:
скаченный файл открыть методом loadFromFile какого- нибудь TStringList'a, в нем уже отыскать что требуется по нужному алгоритму и закачать уже то, что найдено, например тот же рисунок...
Конечно это обходнми путями, но всё таки решение, как думаете?
Добавлено: 14 окт 2005, 22:41
Naeel Maqsudov
нибудь TStringList'a, в нем уже отыскать что требуется
Мы помоему на разных языках говорим....
Я правильно понял, что Вы все-таки решили искать элементы IMG в тексте HTML?
Тогда просто используйте интерфейс IHTMLDocument2 как я писал выше.
С помощью этого интерфеса вы получите и текст HTML, а также массу всего интересного в том числе коллекцию images. Однако это не сами битмапы, так как у элемента Image есть только одно полезное свойство - ToString...
Т.е. не надо ничего искать.
См. мое предыдущее сообщение.
Добавлено: 15 окт 2005, 00:13
OTELLO
Да Вы абсолютно меня правильно поняли,именно это мне и надо,тока я наверное совсем дурак и не могу понять насчёт интерфейса-что надо написать в разделе uses чтобы интерфейс стал понятен???
Добавлено: 15 окт 2005, 00:19
Naeel Maqsudov
Поищите в среди в папке Borland строку "IHTMLDocument"... Если мне правильно изменяет склероз, это должен быть mshtml.pas. Соответственно, писать надо будет mshtml.