Форум: "Corba";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
ВнизIHTMLDocument2 получение всех ссылок Найти похожие ветки
← →
Dmitrij_K (2006-05-06 16:28) [0]Чтобы получить ссылки использую такой код
[code=delphi]
unit uParseHTML;
interface
uses Classes, mshtml, ActiveX, Variants;
procedure Init_parser;
procedure Close_parser;
procedure daj_all_link(var aBuff:AnsiString;aLinkList,aTextList:TStrings);
implementation
var
iDoc : IHTMLDocument2;
procedure Init_parser;
begin
idoc := CoHTMLDocument.Create as IHTMLDocument2;
end;
procedure Close_parser;
begin
if assigned(iDoc) then
begin
iDoc.Close;
iDoc := nil;
end;
end;
procedure set_buff(var aBuff:AnsiString);
var v : Variant;
begin
v := VarArrayCreate([0, 0], varVariant);
v[0] := aBuff;
idoc.clear;
idoc.write(PSafeArray(TVarData(v).VArray));
end;
procedure daj_all_link_2(var aLinkList,aTextList:TStrings);
var
v : OleVariant;
j : Integer;
d : IDispatch;
e : IHTMLElement;
l : IHTMLAnchorElement;
c : IHTMLElementCollection;
z : string;
s : string;
begin
aLinkList.Clear;
aTextList.Clear;
v := "A";
d := iDoc.all.tags(v);
if assigned(d) then
begin
d.QueryInterface(IHTMLElementCollection, c);
if assigned(c) then
begin
for j:=1 to c.Get_length do
begin
d := c.item(pred(j),0);
d.QueryInterface(IHTMLElement, e);
d.QueryInterface(IHTMLAnchorElement, l);
if assigned(e) and assigned(l) then
begin
z := l.href;
if aLinkList.IndexOf(z)=-1 then
begin
aLinkList.Add(z);
aTextList.Add(e.innerText);
end
end
end
end
end
end;
procedure daj_all_link(var aBuff:AnsiString;aLinkList,aTextList:TStrings);
begin
set_buff(aBuff);
daj_all_link_2(aLinkList,aTextList);
end;
end.
[/code]
У ссылок с относительным путем получаю такую хрень
[b]about:blank/path/name.htm[/b]
Как в IHTMLDocument2 прописать текуший URL, чтобы ссылки нормальные получались?
← →
Pavlo © (2006-05-07 14:53) [1]Ну как догадаться не мудренно.
Если такую фигню пишет [b]about:blank/path/name.htm[/b]
ТО ты находишься к примеру на http://www.delphimaster.ru/ адальше идёт папка на под директорию.Следовательно пишем процедуру,получаем весь урл если урл нормальный(типа первые символы не равны [b]about:blank/) то делай шо ты хош,а если не нормальный то вызываем процедуру создания нормального урл.передаем урл и вырезаем символы [b]about:blank/ и вставляем урл на котором находимся(главный)+всё что пошло после [b]about:blank/
Стучи в асю может напишу процедуры если время будет .
И напиши какую ты прогу хош ,мож у меня шо то подобное уже есть
Ася 229-493-799
← →
Dmitrij_K (2006-05-08 11:09) [2]Если кому интересно
http://forum.vingrad.ru/index.php?showtopic=94888
← →
Шпиён (2006-05-14 01:41) [3]Если интересно, то можно сделать проще
http://forum.sources.ru/index.php?showtopic=137176&st=0
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2008.06.29;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.044 c