获取网页内容的简单问题(100分)

  • 主题发起人 主题发起人 txiuq
  • 开始时间 开始时间
T

txiuq

Unregistered / Unconfirmed
GUEST, unregistred user!
在程序中不用其他组件(如TWebrowser等)只用TClientSocket 组件,怎样获得一个网址的网页的内容,如网址是http://www.delphibbs.com/delphibbs/askqn.asp,怎样得到该地址的内容(HTML源码)。
 
连接到WEB服务器的80端口,再发送 GET 命令
procedure TForm1.Button1Click(Sender: TObject);
begin
ClientSocket1.Host := 'delphibbs.com';
ClientSocket1.Port := 80 ;
ClientSocket1.Active := true;

end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
var s:string;
begin
s:='GET /delphibbs/askqn.asp HTTP/1.1'+#13+#10;
s:= s+'Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, */*'+#13+#10;
s:= s+'Accept-Language: zh-cn'+#13+#10;
s:=s+'Accept-Encoding: gzip, deflate'+#13+#10;
s:=s+'User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)'+#13+#10;
s:=s+'Host: delphibbs.com'+#13+#10;
s:=s+'Connection: Keep-Alive'+#13+#10;
s:=s+ #13+#10; //不能少
// 有些行可以省略,但上一行的换行不能少
ClientSocket1.Socket.SendText(s);
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Text := Socket.ReceiveText;
end;
 
http://www.138soft.com/tips/httpprotocol1.htm
 
用idhttp控件 ,很简单!!
 
设置httpget的URL
然后httpget1.GetString;就可以了
httpget搜索下就能找到下载地址了
 
说句老实话,碰到无效地址,idhttp控件老是Raise一个Error,每次执行都是try走except出口,真是失败
 
多人接受答案了。
 
后退
顶部