Uses MSHTML, UrlMon, activex;
...
procedure GetAllLinks(HTMLCode: String; var lnk, txt:TStringList);
var s: string;
i:integer;
Doc: IHTMLDocument2;
v: OleVariant;
DocA: IHTMLElementCollection;
DocElement: IHtmlElement;
begin
Doc := coHTMLDocument.Create as IHTMLDocument2;
v := VarArrayCreate([0,0], VarVariant);
v[0] := HTMLCode;
Doc.Write(PSafeArray(TVarData(v).VArray));
DocA := Doc.All.Tags('A') as IHTMLElementCollection;
For i:=0 to DocA.length-1 do
begin
DocElement := DocA.Item(i, 0) as IHtmlElement;
lnk.Add(DocElement.innerHTML);
txt.Add(DocElement.getAttribute('href', 0));
end;
end;
Пример использования:
procedure TForm1.Button1Click(Sender: TObject);
var Link, TextLink:TStringList;
begin
Link:=TStringList.Create;
TextLink:=TStringList.Create;
Memo1.Lines.LoadFromFile('d:\test.html');
GetAllLinks(Memo1.Text, Link, TextLink);
ListBox1.Items:=Link;
ListBox2.Items:=TextLink;
Link.Free;
TextLink.Free;
end;
Работа с HTML документами невозможна без навыков парсинга. Как-то раз бродя по сети, ища необходимую информацию наткнулся на блог Парсинг от А до Я. На нем достаточно много полезной информации, полезной не только начинающим программистам. Советую заглянуть.
Просмотров: 6540
Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.
Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.
Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.