HTML页面数据已经抓下来了,但其中里面的通过异步加载的数据如何抓取出来呢?
下面这是抓取HTMl内容的代码:
public string getinfo(string url)
    {
        string rl;
        WebRequest myReq = WebRequest.Create(url);
        WebResponse myRes = myReq.GetResponse();
        Stream resStream = myRes.GetResponseStream();
        //这里的编码根据自己的需要可以改改
        StreamReader sr = new StreamReader(resStream, System.Text.Encoding.UTF8);
        StringBuilder sb = new StringBuilder();
        while ((rl = sr.ReadLine()) != null)
        {
            sb.Append(rl);
        }
        myRes.Close();
        return sb.ToString();
    }

解决方案 »

  1.   

    兄弟,我是专门做数据抓取的。=======================================================
    .NET快速开发整合框架(RDIFramework.NET),基于.NET的快速开发、整合框架,给用户和开发者最佳的.Net框架部署方案。
    平台博客:[CNBLOGS]http://www.cnblogs.com/huyong 
         [CSDN]http://blog.csdn.net/chinahuyong
    交流QQ:406590790 (请注明:CSDN)
    平台微博:http://t.qq.com/yonghu86
    邮件交流:[email protected]
      

  2.   

    无论异步和同步都只是针对客户端体验时的不同说法,都逃脱不了HTTP的交互行为. WebResponse myRes = myReq.GetResponse();
    你这里获取的是request提交之后的response的内容.因此,你需要用HTTP嗅探工具去监控异步提交的请求内容与格式,然后模拟这种内容格式提交,再获取response.推荐fiddler(独立工具)/firebug(firefox插件)/chrome开发工人工具等
      

  3.   

    异步的数据一般也是 HTTP GET 或 HTTP POST
    你需要一个抓包工具分析一下整个页面加载过程中你的浏览器的所有请求然后模拟一下就可以了
    这种页面你一个request是不行的,肯定要多个抓包工具可以用微软的 network monitor
      

  4.   

    web好像就是提交请求,get or post 
    用Firebug或者Chrome的F12都可以监视到请求
    例如可以根据里面的据体参数模拟请求提取内容
      

  5.   

    如果这个都复杂了,你就不用写这个HTML抓取数据的功能了.
    本身就需要分析提交内容与格式的.