Подписаться на RSS рассылку
Главная » Статьи по Delphi » Браузер » Найти все ссылки на HTML странице

Найти все ссылки на HTML странице

Автор:

Tweet
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

Обсудить на форуме


Имя *:
Email:


Код *:

Copyright © 2008 - 2018 Программирование на Delphi для начинающих и не только.

Полнота авторских прав на все материалы, опубликованные на сервере DelphiDevelop.ru принадлежит их авторам.

Перепечатка материалов разрешается с указанием авторства и гиперссылки на первоисточник информации.