網頁地址: http://caipiao.163.com/award/cqssc/20160517.html
上面這個網頁是網易網站的彩票開獎頁面,格式是utf-8 ,如何快速把它的源代碼獲取出來??謝謝。。
uj5u.com熱心網友回復:
注意user-agent,直接用indy的http組件可以直接獲取。uj5u.com熱心網友回復:
//****************************獲取網頁源代碼************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;
為什么代碼運行了之后獲取不到源代碼。。問題出在哪兒?請高手指點哈。。謝謝~~~
uj5u.com熱心網友回復:
uses IdCompressorZLibEx
//****************************獲取網頁源代碼************
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;
//****************************獲取網頁源代碼************
uj5u.com熱心網友回復:
大哥,uses IdCompressorZLibEx 是個什么包呀。。。我在網上 下載一個IdCompressorZLibEx.pas ,運行之后老是出錯。
上面那個網頁是charset=utf-8 格式。。。。不是GB2312格式。。我的代碼運行之后,只顯示一個‘?’
uj5u.com熱心網友回復:
IdCompressorZLibEx 是indy 10自帶的ZLIB組件,直接uses即可使用。
uj5u.com熱心網友回復:
用WebBrowseruses :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;
uj5u.com熱心網友回復:
WebBrowser轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/66164.html
標籤:網絡通信/分布式開發
