Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2007.09.09;
Скачать: [xml.tar.bz2];

Вниз

Как вытянуть из 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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.045 c
15-1187165904
Sonia
2007-08-15 12:18
2007.09.09
Интересные вещи творятся


4-1174545538
Сканер
2007-03-22 09:38
2007.09.09
Чтение COM port под XP


15-1187180515
Andy BitOff
2007-08-15 16:21
2007.09.09
Есть ли функция возвращающая...


15-1186673297
antonn
2007-08-09 19:28
2007.09.09
Оцените новый сайт


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