Главная страница
    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.03 c
15-1186730378
Ламот
2007-08-10 11:19
2007.09.09
WinXP и драйвер JetFlash


1-1182772773
Victor456
2007-06-25 15:59
2007.09.09
Перемещение окна


3-1178904669
Dmitry_177
2007-05-11 21:31
2007.09.09
SQL запрос


15-1185177914
Mystic
2007-07-23 12:05
2007.09.09
В продолжение шахматной темы


15-1187019740
@!!ex
2007-08-13 19:42
2007.09.09
Плакал...





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский