Как получить ссылки на которые ведут картинки?
<a href="нужно узнать что тут для данной картинки"><img src=""></a>
Код приведенные ниже пытался модифицировать, не вышло.
for i := 0 to EmbeddedWB1.OleObject.Document.Images.Length - 1 do
begin
Document := Embeddedwb1.Document as IHtmlDocument2;
// Retrieves the calculated width of the image.
ImageWidth := Embeddedwb1.OleObject.Document.Images.Item(i).Width;
// Retrieves the height of the image.
ImageHeight := Embeddedwb1.OleObject.Document.Images.Item(i).Height;
// Retrieves the file size of the image.
ImageFileSize := (Document.Images.Item(i, 0) as IHTMLImgElement).FileSize;
// Retrieves the entire URL that the browser uses to locate the image
ImageHref := (Document.Images.Item(i, 0) as IHTMLImgElement).Href;
// Retrieves a text alternative to the graphic.
ImageTextAlternative := (Document.Images.Item(i, 0) as IHTMLImgElement).alt;
// Show image information in a TListbox
ListBox1.Items.Add(Format('%s : %d x %d Pixels; %s Bytes; %s',
[ImageHref, ImageWidth, ImageHeight, ImageFileSize, ImageTextAlternative]));
end;
Бери исходный код и используй функцию Pos(param1, param2) и Copy(param3, param4, param5)
Pos возвращает целое число, указывающее положение строки param1 в строке param2
Copy возвращает строку (или массив символов), созданную из последовательности символов из строки param3, начиная с символа param4 и длиною param5
1. Сохрани исходный текст страницы в, скажем, переменную str
2. Ищи позицию в исходном коде строки: nPos:=Pos('<a href="',str);
3. Удаляем все до этой строки (можно заносить и в другую переменную): str:=Copy(str, nPos, length(str) - nPos); //начиная с nPos символа (по счету) и длиною до конца строки (как раз длина остатка находится с помощью (length(str)-nPos) )
4. Ищем конец ссылки: nPos:=Pos('"', str);
5. И копируем все до этой позиции, минус один символ (чтобы этот символ не затронуть): str:=Copy(str, 1, nPos - 1);
нет
мне нужно выдрать из COM обьекта или как это называется точно?
регекспы а тем более скопировать-отрезать-склеить не подходит к сожалению
К сожалению, с COM я не шибко знаком
ваш код заткнется на
<A href="
<A class href="
< a onmouseover='чето там' HREF
продолжать можно бесконечно
я тоже не знаком, а сегодня надо это сделать
darkcoder
Я что то не понимаю, что у вас не получается ...
То что вам надо достать находится в теге А, следовательно вам надо из документа достать все элементы-линки (ну и ли как там они называються).
Далее пройти по всем в цикле и смотреть нет ли в дочерних (Childs) элемента картинки. Для тех у кого это условие выполняется, забрать ссылку (адресс).
Можно пойти и от обратного. Идти по картинкам, но смотреть родителя (Parent).
вот! про дочерние наверно правильно
спасибо
а можно код если вам не сложно хотя бы примерный.. а то я с этим первый раз сталкиваюсь.
У меня нет EmbeddedWB. Но я не думаю что там все так уж сложно ...
Он такой же как и обычный webbrowser
все от webbrowser'а подходит
Примерно так с WebBrowser, ну а далее уже сами меняйте-улучшайте ...
procedure TForm1.WebBrowser1DownloadComplete(Sender: TObject);
var
i:Integer;
img : IHTMLImgElement;
begin
for i:=0 to (WebBrowser1.Document as IHTMLDocument2).images.length -1 do begin
img:= (WebBrowser1.Document as IHTMLDocument2).images.item(i, 1) AS IHTMLImgElement;
if ((img as IHTMLElement).parentElement.tagName = 'A') then
ShowMessage(((img as IHTMLElement).parentElement as IHTMLAnchorElement).href);
end;
end;
sax_ol кроме огромного спасибо сказать нечего.
Форум Invision Power Board (http://nulled.ws)
© Invision Power Services (http://nulled.ws)