unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, ztvregister, ztvBase, ztvGZip, ztvUnGZip;
const
BufferSize = 2048;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
ZLibEx, ZLibExGZ;
{$R *.dfm}
function ReadTxTonStream(stream: TStream): string; //从内存中读整理去掉TStrings不兼容的字会串
var
Str: string;
i: Integer;
begin
stream.Position := 0;
SetLength(str, stream.size);
stream.ReadBuffer(Str[1], Length(Str));
for i := 1 to Length(Str) do
begin
if Str[i] = #0 then Str[i] := #20;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
url: string;
IdHTTP: TIdHTTP;
stream, out_stream: TMemoryStream;
htmlout: string;
begin
url := Edit1.Text;
IdHTTP := TIdHTTP.Create(nil);
IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36';
IdHTTP.HandleRedirects := True;
IdHTTP.Request.AcceptEncoding := 'gzip,deflate,sdch'; //告诉服务器,我支持gzip网页
stream := TMemoryStream.Create;
out_stream := TMemoryStream.Create;
try
try
IdHTTP.get(url, stream);
stream.Position := 0;
stream.SaveToFile('1.txt');
GZDecompressStream(stream, out_stream);
out_stream.SaveToFile('2.txt'); //这个就是我们要的html内容
htmlout := ReadTxTonStream(out_stream);
except
on e: Exception do
begin
htmlout := ReadTxTonStream(stream);
Memo1.Lines.Add(e.Message);
end;
end;
Memo1.Lines.Add(htmlout);
finally
stream.Free;
out_stream.Free;
IdHTTP.Free;
end;
end;
end.
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, IdBaseComponent, IdComponent, IdTCPConnection,
IdTCPClient, IdHTTP, ztvregister, ztvBase, ztvGZip, ztvUnGZip;
const
BufferSize = 2048;
type
TForm1 = class(TForm)
Button1: TButton;
Memo1: TMemo;
Edit1: TEdit;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses
ZLibEx, ZLibExGZ;
{$R *.dfm}
function ReadTxTonStream(stream: TStream): string; //从内存中读整理去掉TStrings不兼容的字会串
var
Str: string;
i: Integer;
begin
stream.Position := 0;
SetLength(str, stream.size);
stream.ReadBuffer(Str[1], Length(Str));
for i := 1 to Length(Str) do
begin
if Str[i] = #0 then Str[i] := #20;
end;
Result := str;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
url: string;
IdHTTP: TIdHTTP;
stream, out_stream: TMemoryStream;
htmlout: string;
begin
url := Edit1.Text;
IdHTTP := TIdHTTP.Create(nil);
IdHTTP.Request.UserAgent := 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/30.0.1599.101 Safari/537.36';
IdHTTP.HandleRedirects := True;
IdHTTP.Request.AcceptEncoding := 'gzip,deflate,sdch'; //告诉服务器,我支持gzip网页
stream := TMemoryStream.Create;
out_stream := TMemoryStream.Create;
try
try
IdHTTP.get(url, stream);
stream.Position := 0;
stream.SaveToFile('1.txt');
GZDecompressStream(stream, out_stream);
out_stream.SaveToFile('2.txt'); //这个就是我们要的html内容
htmlout := ReadTxTonStream(out_stream);
except
on e: Exception do
begin
htmlout := ReadTxTonStream(stream);
Memo1.Lines.Add(e.Message);
end;
end;
Memo1.Lines.Add(htmlout);
finally
stream.Free;
out_stream.Free;
IdHTTP.Free;
end;
end;
end.