如何用socket控件读取目标网页的源程序????(100分)

  • 主题发起人 主题发起人 sodme
  • 开始时间 开始时间
hostStr:='http://sdsadf.sadf.com';{网页地址}
socket.host:=hostStr;
socket.SendText('http://lsdaflasdkf');{网页内容}
 
to imstev:
首先,Socket先要与server建立连接,才能读取网页的吧?
我可以帮你考虑考虑。
mail:liutan500@sina.com
 
to liutan:
小弟先谢了,事成之后,定有重谢。:)
 
干吗,用 socket ,直接用 nmhttp 就ok
 
关注,好像作机器人有用!
 
Demos/FastNet/http下有个例子一看便知
 
http服务端口是一般是80,把你的socket连接到服务器的80端口中
然后发送get /(页面url) http/1.1字符串过去。
服务器接到这个http命令后会返回要求页面的源代码。

网页的浏览过程就是往服务器的80端口不断发http命令的过程,
找有关http协议的书摆在桌上做开发资料对照着写就是了。
 
我已经自己找到方法,接收答案,谢了。
 
TO SODME:
问题怎末解决的,我也很关心 . sfowler@21cn.com
 
其实,我也是首次接触socket编程,不过,在各位兄弟的帮助下,我还是最终解决了我的问题,
是这样的:
在用SOCKET编程的时候,都涉及到一个客户/服务器的问题。比如,在用浏览器的时候,就
是位于浏览器的客户端向远程WEB服务器提交的一个请求,然后服务器据请求信息作出响应。说
多了也是废话,简单地一点就是我们在设计这样的程序时首先要明白这一点。还有,就是HTTP
协议是上层协议,位于应用层,客户和服务器之间传递的信息可以用SOCKET控件直接读取的字
符序列。浏览器在给服务器发请求时是类似于这样的格式:
GET http://www.youhost.com HTTP/1.0
accept: www/source; text/html; image/gif; image/jpeg; */*
User_Agent: myAgent
**空行**

具体的格式说明如下:
请求方法 URL HTTP协议的版本号
提交的元信息
**空行**
实体

而服务器可以返回的信息类似于:
HTTP/1.1 200 OK
Date: Tue, 14 Sep 1999 02:19:57 GMT
Server: Apache/1.2.6
Connection: close
Content-Type: text/html
**空行**
<html><head>...</head><body>...</body></html>

具体格式说明如下:
HTTP协议的版本号 应答状态码 应答状态码说明
接收的元信息
**空行**
实体

看到了吧。在服务器给出的响应信息中,就含有我们想要的网页源代码:“<html>...</html>”
好了,下面的工作就是要写程序进行提取了。
好的,如果再有什么问题,请随时跟贴,我一定把我知道的所有的东西都倾情相告。

谢谢各位兄弟。特别感谢:bnulaw imstev libb


 
to sodme:
你有Http协议的中文版吗?
若有请发给我一份好吗?我有急用,谢谢!!
 
给我发个例子
 
后退
顶部