delphi 一句话,一分钟,取得网页源码

拖三个组件: memo ,idhttp,edit 加一个Button

然后在procedure TForm1.Button1Click(Sender: TObject);里加上一句话

1.可以这么写

memo1.Text:= idHTTP1.Get(edit1.Text);

2.也可以这么写

memo1.Lines.Add(IdHTTP1.Get(edit1.Text));

这件事就这么简单.

不过,别用它来试百度,因为百度屏蔽了 ‘Indy Library’ 这个客户端标识的。

hehe,除非修改http头
User-Agent: Mozilla/3.0 (compatible; Indy Library) 修改前面绿色的部分

注:如果出现的是乱码,查一下html的文件头,看看编码方式,然后比如改成这样

memo1.Text:=utf8toansi( idHTTP1.Get(edit1.Text));

 

更进一步:

function TForm1.Get(URL: string):string;
var
IDHTTP: TIDHttp;
ss: String;
begin

IDHTTP:= TIDHTTP.Create(nil);
try
try
idhttp.Disconnect;
   
    idhttp.HandleRedirects:= true;   //必须支持重定向否则可能出错
    idhttp.ReadTimeout:= 30000;     //超过这个时间则不再访问
ss:=utf8toansi( IDHTTP.Get(URL));   //UTF8编码转换
// if ss='' then
    ss:=UTF8Decode(idhttp.Get(url));
    if IDHTTP.ResponseCode=200 then
    Result :=ss;
except
//ss:='';
end;
finally
IDHTTP.Free;
end;
end;

http://hi.baidu.com/sxshandian/blog/item/96d217d6339adb2806088b22.html

posted @ 2010-02-15 13:02  猪悟能  阅读(572)  评论(0编辑  收藏  举报