Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.09;
Скачать: CL | DM;

Вниз

Как вытянуть из html-файла список всех ссылок и картинок   Найти похожие ветки 

 
K@KTUS ©   (2007-01-14 22:16) [0]

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


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

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

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


 
easy ©   (2007-01-15 12:23) [2]

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;


 
K@KTUS ©   (2007-01-15 23:44) [3]

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


 
easy ©   (2007-01-16 13:47) [4]

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


 
K@KTUS ©   (2007-01-16 23:03) [5]


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

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


 
K@KTUS ©   (2007-01-16 23:57) [6]


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


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


 
easy ©   (2007-01-17 11:04) [7]

извиняюсь, не
(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-17 23:52) [8]

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



Страницы: 1 вся ветка

Текущий архив: 2007.09.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.021 c
2-1187184080
iXT
2007-08-15 17:21
2007.09.09
...=class(TComponent)


3-1178971005
kind_shubin
2007-05-12 15:56
2007.09.09
Как прописать


2-1187553240
C0derr
2007-08-19 23:54
2007.09.09
Как сделать картинку в фрейме неподвижной при вертик. прокрутке?


11-1168887227
Katya
2007-01-15 21:53
2007.09.09
избирательный OwnerDraw


15-1186674765
@!!ex
2007-08-09 19:52
2007.09.09
Как убрать звук?