Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как вытянуть из html-файла список всех ссылок и картинок [D6, WinXP]


K@KTUS ©   (2007-01-14 22:16:00) 

Пожалуйста, подскажите как вытянуть из html-файла список всех ссылок и картинок не используя WebBrowser.


K@KTUS   (2007-01-17 23:52:00) [1]

Спасибо БОЛЬШОЕ. Сегодня попробую...


easy   (2007-01-17 11:04:00) [2]

извиняюсь, не
(vColl.item(i,EmptyParam) as IHTMLElement).href
а
(vColl.item(i,EmptyParam) as IHTMLAnchorElement).href

>> Eraser ©   (15.01.07 00:53) [1]
>> с пом. регулярных выражений.
>
>
> А подробнее можно??

uses RegExpr;

procedure GetLinks(const Text:string; Lines:TStrings);
const
 expr = '(?is)(<a.+?href=(\"|\s|)(.+?)(\"|\s|>).+?>)';
begin
with TRegExpr.Create do
 try
   Expression := expr;
   if Exec(Text) then begin
     repeat
       Lines.Add(Match[3]);
     until not ExecNext;
   end;
 finally
   Free;
 end;
end;


TRegExpr тут -
http://www.regexpstudio.com/RU/TRegExpr/TRegExpr.html


K@KTUS   (2007-01-16 23:57:00) [3]


> Eraser ©   (15.01.07 00:53) [1]
> с пом. регулярных выражений.


А подробнее можно??


K@KTUS   (2007-01-16 23:03:00) [4]


> ListBox1.Items.Add((vColl.item(i,EmptyParam) as IHTMLElement).href);

href не работает (Undeclared identifer: 'href')


easy   (2007-01-16 13:47:00) [5]

ListBox1.Items.Add((vColl.item(i,EmptyParam) as IHTMLElement).href);


K@KTUS   (2007-01-15 23:44:00) [6]

Что-то этот вариант не особо хочет работать с некоторыми сайтами. И мне нужно, чтобы была сама ссылка типа http://....,а не текст под которым она скрывается


easy   (2007-01-15 12:23:00) [7]

uses
 ActiveX, ComObj, MSHTML;

procedure TForm1.Button1Click(Sender: TObject);
var
 vHttp: OleVariant;
 vContext: OleVariant;
 vDocument: IHTMLDocument2;
 vHtml: String;
 vColl:IHTMLElementCollection;
 i:integer;
begin
 Screen.Cursor:=crHourGlass;
 Button1.Enabled:=false;
 vHttp := CreateOleObject('Microsoft.XMLHTTP'); { Requires IE5 }
 vHttp.Open('GET', ' http://www.google.ru/', False, EmptyParam, EmptyParam);
 vHttp.Send('');
 vHtml := vHttp.responseText;
 vDocument := CoHTMLDocument.Create as IHTMLDocument2;
 vContext := VarArrayCreate([0, 0], varVariant);
 vContext[0] := vHtml;
 vDocument.Write(PSafeArray(TVarData(vContext).VArray));
 vDocument.Close;
 vDocument.all.tags('A').QueryInterface(IHTMLElementCollection,vColl);
 ListBox1.Clear;
 for i:=0 to vColl.length-1 do begin
    ListBox1.Items.Add((vColl.item(i,EmptyParam) as IHTMLElement).innerText);
 end;
 Button1.Enabled:=true;
 Screen.Cursor:=crDefault;
end;


Eraser   (2007-01-15 00:53:00) [8]

> [0] K@KTUS ©   (14.01.07 22:16)

с пом. регулярных выражений.


Наверх

Титульная страница Поиск, карта сайта Написать письмо