TWebBrowser и HTML
Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду
Всем приветик,такой вопрос у меня-как можно в этом компоненте узнать во время работы программы html код загруженной странички,и например,записать его в файл? (хотя на самом деле просто нужно его узнать и найти в нем отдельные элементы,скажем теги <img>)
Либо как это можно сделать без TWebBrowser-напрямую,подключаясь к Internet Explorer, например. Может какие- нибудь компоненты есть сторонние, кот. позволяют сие творить, подскажите кто чем может...
Заранее спасибки...
Либо как это можно сделать без TWebBrowser-напрямую,подключаясь к Internet Explorer, например. Может какие- нибудь компоненты есть сторонние, кот. позволяют сие творить, подскажите кто чем может...
Заранее спасибки...
Сейчас лень код работающий искать в дебрях винта. Нужно соответствующие интерфейсы COM'овские дёргать.
Посмотри тут: http://www.euromind.com/iedelphi/
Если не найдёшь - актуализируй тему, с утреца кину.
Посмотри тут: http://www.euromind.com/iedelphi/
Если не найдёшь - актуализируй тему, с утреца кину.
Даже самый дурацкий замысел можно воплотить мастерски
Нашёл я там компонент TIEDownLoad, позволяет качать любые файлы как напрямую,так и в поток, но это не то. Понимаешь- мне нужно написать программу, которая будет сама сохранять рисунок с загруженной в данный момtyn в IE странчки, рисунок по выбору... Вот...
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Код: Выделить всё
var
doc: IHTMLDocument2;
begin
doc:=WebBrowser1.Document;
doc.<тут после точки вывалится список со свойствами IHTMLDocument2 там найдете HTML и многое другое>
end;
Надо что-то другое, что даст уже готовые картинки.
До картинки я не знаю как достучаться, а с сохранением самой страницы всё довольно просто:
Все проверки оставляю на твоей совести 
Картинки, как промежуточный вариант, можно из кеша тягать.
Я позже попытаюсь найти и про картинки.
Код: Выделить всё
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;

Картинки, как промежуточный вариант, можно из кеша тягать.
Я позже попытаюсь найти и про картинки.
Даже самый дурацкий замысел можно воплотить мастерски
В общем - идея такая: с указанной ссылки нужно утащить компонент, который позволяет обрабатывать события браузера.
В каком-нибудь onBeforeNavigate2 запоминать документы, связанные с картинками. А потом таким же макаром, как в предыдущем сообщении, сохранять эти картинки. Единственный непродуманный момент - как определять какую именно картинку сохранять. А вообще, если не отключать принудительно контекстное меню, но это можно и так по правой кнопке мыши сделать
В каком-нибудь onBeforeNavigate2 запоминать документы, связанные с картинками. А потом таким же макаром, как в предыдущем сообщении, сохранять эти картинки. Единственный непродуманный момент - как определять какую именно картинку сохранять. А вообще, если не отключать принудительно контекстное меню, но это можно и так по правой кнопке мыши сделать

Даже самый дурацкий замысел можно воплотить мастерски
На самом деле в голову пришла безумная мысль, а именно:
скаченный файл открыть методом loadFromFile какого- нибудь TStringList'a, в нем уже отыскать что требуется по нужному алгоритму и закачать уже то, что найдено, например тот же рисунок...
Конечно это обходнми путями, но всё таки решение, как думаете?
скаченный файл открыть методом loadFromFile какого- нибудь TStringList'a, в нем уже отыскать что требуется по нужному алгоритму и закачать уже то, что найдено, например тот же рисунок...
Конечно это обходнми путями, но всё таки решение, как думаете?
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Мы помоему на разных языках говорим....нибудь TStringList'a, в нем уже отыскать что требуется
Я правильно понял, что Вы все-таки решили искать элементы IMG в тексте HTML?
Тогда просто используйте интерфейс IHTMLDocument2 как я писал выше.
С помощью этого интерфеса вы получите и текст HTML, а также массу всего интересного в том числе коллекцию images. Однако это не сами битмапы, так как у элемента Image есть только одно полезное свойство - ToString...
Т.е. не надо ничего искать.
См. мое предыдущее сообщение.
Да Вы абсолютно меня правильно поняли,именно это мне и надо,тока я наверное совсем дурак и не могу понять насчёт интерфейса-что надо написать в разделе uses чтобы интерфейс стал понятен???
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
Поищите в среди в папке Borland строку "IHTMLDocument"... Если мне правильно изменяет склероз, это должен быть mshtml.pas. Соответственно, писать надо будет mshtml.