Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Extract all HTML Objects from a Web Page
See more MHT / HTML Email Examples
Demonstrates how to download a Web page (at a URL) and extract all HTML objects. Eg. images, links, CSS files, JavaScript files, etc.Chilkat Pascal (Lazarus/Delphi) Downloads
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.Mht;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
mht: TMht;
mhtDoc: string;
unpackDir: string;
htmlFilename: string;
partsSubdir: string;
begin
success := False;
// This example assumes the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
mht := TMht.Create;
// Download a URL into an in-memory MHT web archive contained
// in a string variable.
// The following URL is randomly picked and was valid at the time of writing this example:
mhtDoc := mht.GetMHT('https://www.tetonlodge.com/');
if (mht.LastMethodSuccess <> True) then
begin
WriteLn(mht.LastErrorText);
Exit;
end;
// Extract the HTML and embedded objects:
unpackDir := 'C:/AAWorkarea/mhtTesting/';
htmlFilename := 'lodge.html';
partsSubdir := 'objects';
// Extract to C:/AAWorkarea/mhtTesting/lodge.html.
// images and other embedded objects are placed in
// C:/AAWorkarea/mhtTesting/objects. Directories are automatically
// created if they don't already exist.
success := mht.UnpackMHTString(mhtDoc,unpackDir,htmlFilename,partsSubdir);
if (success <> True) then
begin
WriteLn(mht.LastErrorText);
end
else
begin
WriteLn('Unpacked!');
end;
mht.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.