none
我想使用浏览器控件获取与指定目标网站的所有http通讯的内容,使用HTTP Monitor for Webbrowser Control控件,但是总是出错. RRS feed

  • 问题

  • 我想使用浏览器控件来获取与目标网站通讯的所有response内容(如下图),所以使用第三方控件 HTTP Monitor for Webbrowser Control,但是他的demo貌似有问题,一直出错,原因是HttpMonitor.dll文件无法成功注册.(在xpsp3 32位系统和win7 64位系统下均无法注册成功).但是我在控件主页的留言中看到部分用户是可以正常使用的,不知道具体是什么原因?

    请问如何解决? 非常感谢

    控件地址:

    http://www.codeproject.com/Articles/157329/Http-Monitor-for-Webbrowser-Control

    另,如果不使用第三方控件 HTTP Monitor for Webbrowser Control来实现的话,是否有其他方法实现呢? 谢谢.

    • 已编辑 tylrr 2014年2月5日 9:49 加图片
    2014年2月5日 9:17

全部回复

  • 如果不用第三方控件,可以考虑使用WebRequest+WebResponse实现类似功能(C#):

    WebRequest req = WebRequest.Create("http://www.baidu.com");
           WebResponse resp = req.GetResponse();
           foreach (var item in req.Headers.Keys)
           {
               Console.WriteLine(item+":"+req.Headers[item.ToString()]);
           }
           foreach (var item in resp.Headers.Keys)
           {
               Console.WriteLine(item+":"+resp.Headers[item.ToString()]);
           }
           Console.WriteLine("Source code is:");
           Console.WriteLine(new StreamReader(resp.GetResponseStream()).ReadToEnd());
           resp.Close();


    ASP.NET Forum
    Other Discussion Forums
    FreeRice Donate
    Issues to report
    Free Tech Books Search

    2014年2月6日 5:53
    版主
  • 感谢回答。请问使用WebRequest+WebResponse是否可以采集ajax的内容呢?

    我补充一下问题:

    想用c#写个采集程序来采集某网站运行ajax后生成的数据,但是目标网站采取了js层层加密和其它复杂的加密技术,所以无法直接采集ajax接口,我想使用webbrowser控件来采集网页DOM的数据,但使用抓包分析后看到,该网站每次执行ajax返回5000条数据,只在前端显示100条数据。这样的话浏览器控件需要请求50次才能抓取到所有内容,效率非常低,而且还会由于过多的请求而触发该网站的反采集策略。

    所以我想直接采集网站执行ajax后返回的content数据(不是header),但是webbrowser貌似没办法获取到,所以想使用第三方浏览器控件(类似csexwb)实现。 
    请教应该怎么获取呢?谢谢


    • 已编辑 tylrr 2014年2月6日 9:55 更新问题
    2014年2月6日 9:49