یادداشت های برنامه نویس

تجربیات و سورس کدهای رایگان در زمینه برنامه نویسی دلفی و دیتابیس ها

یادداشت های برنامه نویس

تجربیات و سورس کدهای رایگان در زمینه برنامه نویسی دلفی و دیتابیس ها

بدست آوردن تمامی عکس های درون یک صفحه وب

uses mshtml, ActiveX, COMObj, IdHTTP, idURI;
{ .... }
procedure GetImageLinks(AURL: string; AList: TStrings);
var IDoc: IHTMLDocument2;
    strHTML: string;
    v: Variant;
    x: Integer;
    ovLinks: OleVariant;
    DocURL: string;
    URI: TidURI;
    ImgURL: string;
    idHTTP: TidHTTP;
    begin
    AList.Clear;
    URI := TidURI.Create(AURL);
    try
    DocURL := 'http://' + URI.Host;
    if URI.Path <> '/' then
    DocURL := DocURL + URI.Path;
    finally
    URI.Free;
    end;
    Idoc := CreateComObject(Class_HTMLDocument) as IHTMLDocument2;
    try
    IDoc.designMode := 'on';
    while     IDoc.readyState <> 'complete' do
    Application.ProcessMessages;
    v := VarArrayCreate([0, 0], VarVariant);
    idHTTP := TidHTTP.Create(nil);
    try
    strHTML := idHTTP.Get(AURL);
    finally
    idHTTP.Free;
    end;
    v[0] := strHTML;
    IDoc.Write(PSafeArray(System.TVarData(v).VArray));
    IDoc.designMode := 'off';
    while     IDoc.readyState <> 'complete' do
    Application.ProcessMessages;
    ovLinks := IDoc.all.tags('IMG');
    if ovLinks.Length > 0 then begin
    for x := 0 to ovLinks.Length - 1 do begin
    ImgURL := ovLinks.Item(x).src;
    if (ImgURL[1] = '/') then begin
    ImgURL := DocURL + ImgUrl;
    end
    else
    begin
    if (Copy(ImgURL, 1, 11) = 'about:blank') then begin
    ImgURL := DocURL + Copy(ImgUrl, 12, Length(ImgURL));
    end;
    end;
    AList.Add(ImgURL);
    end;
    end;
    finally
    IDoc := nil;
    end;
    end;
روش استفاده////
 Example:
 procedure TForm1.Button1Click(Sender: TObject);
 begin GetImageLinks('http://lear4u.blogsky.com', Memo1.Lines);
 end
نظرات 0 + ارسال نظر
برای نمایش آواتار خود در این وبلاگ در سایت Gravatar.com ثبت نام کنید. (راهنما)
ایمیل شما بعد از ثبت نمایش داده نخواهد شد