用WebBrowser uses :ActiveX; function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean; var ps: IPersistStreamInit; fs: TFileStream; sa: IStream; begin ps := WebBrowser.Document as IPersistStreamInit; fs := TFileStream.Create(FileName, fmCreate); try sa := TStreamAdapter.Create(fs, soReference) as IStream; Result := Succeeded(ps.Save(sa, True)); finally fs.Free; end; end; function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean; var ps: IPersistStreamInit; ss: TStringStream; sa: IStream; s: string; begin ps := WebBrowser.Document as IPersistStreamInit; s := ' '; ss := TStringStream.Create(s); try sa := TStreamAdapter.Create(ss, soReference) as IStream; Result := Succeeded(ps.Save(sa, True)); if Result then ACode.Add(ss.Datastring); finally ss.Free; end; end; procedure TForm1.Button1Click(Sender: TObject); begin WB_SaveHTMLCode(Webbrowser1, 'c:\test.txt '); end; procedure TForm1.Button2Click(Sender: TObject); begin WB_GetHTMLCode(Webbrowser1, Memo1.Lines); end;
function GetWebPage(const Url :string):string;
var
idp :TIdHTTP; //uses IDHttp
begin
Result := '';
idp := TIdHTTP.Create(Application);
try
idp.HandleRedirects := True;
idp.Request.UserAgent := 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)';
Result := Utf8ToAnsi(UTF8Decode(idp.Get(Url)));
finally
FreeAndNil(idp);
end;
end;
//****************************获取网页源代码************
procedure TForm1.Button1Click(Sender: TObject);
begin
memo1.Text:=getwebpage('http://caipiao.163.com/award/cqssc/20160517.html');
end;
为什么代码运行了之后获取不到源代码。。问题出在哪儿?请高手指点哈。。谢谢~~~
//****************************获取网页源代码************
function GetWebPage(const Url :string):string;
var
idp :TIdHTTP; //uses IDHttp
begin
Result := '';
idp := TIdHTTP.Create(Application);
try
idp.HandleRedirects := True;
idp.Compressor:= TIdCompressorZLibEx.Create(nil);
idp.Request.UserAgent := 'Mozilla/5.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; Maxthon; .NET CLR 1.1.4322)';
Result := Utf8ToAnsi(idp.Get(Url));
finally
FreeAndNil(idp);
end;
end;
//****************************获取网页源代码************
上面那个网页是charset=utf-8 格式。不是GB2312格式。。我的代码运行之后,只显示一个‘?’
上面那个网页是charset=utf-8 格式。不是GB2312格式。。我的代码运行之后,只显示一个‘?’
IdCompressorZLibEx 是indy 10自带的ZLIB组件,直接uses即可使用。
uses :ActiveX; function WB_SaveHTMLCode(WebBrowser: TWebBrowser; const FileName: TFileName): Boolean;
var
ps: IPersistStreamInit;
fs: TFileStream;
sa: IStream;
begin
ps := WebBrowser.Document as IPersistStreamInit;
fs := TFileStream.Create(FileName, fmCreate);
try
sa := TStreamAdapter.Create(fs, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
finally
fs.Free;
end;
end; function WB_GetHTMLCode(WebBrowser: TWebBrowser; ACode: TStrings): Boolean; var
ps: IPersistStreamInit; ss: TStringStream;
sa: IStream;
s: string;
begin
ps := WebBrowser.Document as IPersistStreamInit;
s := ' ';
ss := TStringStream.Create(s);
try
sa := TStreamAdapter.Create(ss, soReference) as IStream;
Result := Succeeded(ps.Save(sa, True));
if Result then ACode.Add(ss.Datastring);
finally
ss.Free;
end;
end; procedure TForm1.Button1Click(Sender: TObject);
begin
WB_SaveHTMLCode(Webbrowser1, 'c:\test.txt ');
end; procedure TForm1.Button2Click(Sender: TObject);
begin
WB_GetHTMLCode(Webbrowser1, Memo1.Lines);
end;