![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как вытянуть из 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)
с пом. регулярных выражений.