Главная страница
    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.46 MB
Время: 0.04 c
2-1187520358
ctudent
2007-08-19 14:45
2007.09.09
Динамическое создание закладки tabsheet


2-1187001601
Quart
2007-08-13 14:40
2007.09.09
Blob


8-1165161356
IMHO
2006-12-03 18:55
2007.09.09
Формат SWF (Flash)


8-1165410358
T54
2006-12-06 16:05
2007.09.09
image


15-1186904367
ctudent
2007-08-12 11:39
2007.09.09
В чём может быть причина с DVD?





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский