Sample code for 30+ languages & platforms
Pascal (Lazarus/Delphi)

Extract HTML Title, Description, Keywords

See more Spider Examples

This example expands on the "getting started" example by showing how to access the HTML title, description, and keywords within each page spidered. These are the contents of the META tags for keywords, description, and title found in the HTML header.

Chilkat Pascal (Lazarus/Delphi) Downloads

Pascal (Lazarus/Delphi)
program ChilkatDemo;

// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.

{$IFDEF FPC}
  {$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}

uses
  {$IFDEF UNIX}
  cthreads,
  {$ENDIF}
  SysUtils,
  CkDllLoader,
  Chilkat.Spider;

// ---------------------------------------------------------------------------

procedure RunDemo;
var
  success: Boolean;
  spider: TSpider;
  i: Integer;

begin
  success := False;

  spider := TSpider.Create;

  //  The spider object crawls a single web site at a time.  As you'll see
  //  in later examples, you can collect outbound links and use them to 
  //  crawl the web.  For now, we'll simply spider 10 pages of chilkatsoft.com
  spider.Initialize('www.chilkatsoft.com');

  //  Add the 1st URL:
  spider.AddUnspidered('http://www.chilkatsoft.com/');

  //  Begin crawling the site by calling CrawlNext repeatedly.

  for i := 0 to 9 do
    begin

      success := spider.CrawlNext();
      if (success = True) then
        begin
          //  Show the URL of the page just spidered.
          WriteLn(spider.LastUrl);

          //  The HTML META keywords, title, and description are available in these properties:
          WriteLn(spider.LastHtmlTitle);
          WriteLn(spider.LastHtmlDescription);
          WriteLn(spider.LastHtmlKeywords);

          //  The HTML is available in the LastHtml property
        end
      else
        begin
          //  Did we get an error or are there no more URLs to crawl?
          if (spider.NumUnspidered = 0) then
            begin
              WriteLn('No more URLs to spider');
            end
          else
            begin
              WriteLn(spider.LastErrorText);
            end;
        end;
      //  Sleep 1 second before spidering the next URL.
      spider.SleepMs(1000);
    end;



  spider.Free;

end;

// ---------------------------------------------------------------------------

begin

  try
    RunDemo;
  except
    on E: Exception do
      WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
  end;

  WriteLn;
  {$IFDEF MSWINDOWS}
  WriteLn('Press Enter to exit...');
  ReadLn;
  {$ENDIF}
end.