本人对于网页这一块基本了解很少,之前也只做过socket的数据交换之类的,对于网络和一些比较基础的封包之类知识不太明白,最近想做一个读取网页数据,然后分析网络数据,继而模拟用户发送指令达到很基础基本的模拟类操作,但是没什么头绪去怎么做,尤其是在网页数据以及发送指令这快完全摸不着头脑。拜请各位大神能不能简单描述一下这个过程的基本操作呢?或者有没有什么相关的源码能研究一下,谢谢各位了

解决方案 »

  1.   

    1.利用 HttpWebRequest 和 HttpWebResponse 来模拟浏览器。 就可以做到你想做的了
    2.利用 WebClient 也可以。
    3.利用 WebBrowser 控件。
      

  2.   

    抓包工具 可以用 fittler 或 httpWatch pro
      

  3.   

    这几天上课完用空余的时间看了一下这些代码,觉得还是不是很明白,目前对get和post有一个很基础的了解,但是关于数据提交方面不是很清楚,也下载了httpwatch pro工具观察了一下抓包,但是不太清楚如何运用抓包的成果去到发送数据中去,那些header之类的东西不知道如何去运用,谢谢。比如说,下面这个header(Request-Line) POST /forum.php?mod=topicadmin&action=moderate&fid=830&moderate[]=29271012&handlekey=mods&infloat=yes&nopost=yes&inajax=1 HTTP/1.1
    Accept text/html, application/xhtml+xml, */*
    Accept-Encoding gzip, deflate
    Accept-Language zh-CN
    Cache-Control no-cache
    Connection Keep-Alive
    Content-Length 71
    Content-Type application/x-www-form-urlencoded
    Cookie hiido_ui=0.4851136142952676; bbs_4477_sid=4yepD4; bbs_4477_saltkey=1mpZc0Gt; bbs_4477_lastvisit=1351433237; bbs_4477_lastact=1351806955%09forum.php%09viewthread; bbs_4477_forum_lastvisit=D_830_1351806932; bbs_4477_visitedfid=830; bbs_4477_cookietime=1; bbs_4477_auth=3ef7t9KNHlw%2FlGabIXi8MPMY1w5V9EnFvg6jP%2B%2Braqfkg2jvHw; bbs_4477_ulastactivity=2a0ef7oWG%2Bs5Dkvn%2BUrIANSyFXbJrHEaDMjPc4UPM%2FR0ACtV0mq2; bbs_4477_smile=1D1; bbs_4477_forum_lastpage=830_1; bbs_4477_sendmail=1; bbs_4477_fid830=1351805376; Hm_lvt_0475e9919a7ba48887772bb84a8dd9e9=1325583818951; Hm_lvt_899fe607527b6d40d67e743dc3f660e0=1351793811001,1351802886911,1351805309041,1351806935226; Hm_lpvt_899fe607527b6d40d67e743dc3f660e0=1351806957456
    DNT 1
    Host bbs.duowan.com
    Referer http://bbs.duowan.com/thread-29271012-1-1.html
    User-Agent Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)在提交给网页的时候,应该如何运用相应的方法呢,是不是用httpwebrespones呢,如何运用呢,不好意思,本人比较初级,希望谅解了
      

  4.   

    浏览器也是通过socket和服务器软件(如IIS)进行通信的。不过服务器软件在响应完客户端浏览器的请求后,会立刻断开和客户端的socket连接。客户端的请求有静态页面(html)的请求,动态页面(aspx,jsp,php等)的请求,文件(如图片)的请求。服务器根据客户端请求文件的扩展名去判断是何种请求,如果是静态页面就直接将html代码作为字符串返回给客户端浏览器(发送时是以字节数组的形式),图片也类似,转换为字节数组直接发给浏览器就可以了,动态页面要进行执行,生成页面控件树,将执行结果返回给客户端浏览器。服务端还要发送一个响应报文头,其中包括了Content-Type属性来告诉浏览器这些数据是什么类型的,浏览器接收到数据后根据这个属性值将字节数组转换为相应的格式。