0

我每天都必须从网站下载一些内容,所以我认为有一个可以做到这一点的程序会很好......问题是该网站需要身份验证。

我目前的解决方案是使用System.Windows.Forms.WebBrowser控制。我目前正在做类似的事情:

/* Create browser */
System.Windows.Forms.WebBrowser browser = new System.Windows.Forms.WebBrowser();

/* navigate to desired site */ 
browser.Navigate("http://stackoverflow.com/");

// wait for browser to download dom

/* Get all tags of type input */
var elements = browser.Document.Body.GetElementsByTagName("input");

/* let's look for the one we are interested */
foreach (System.Windows.Forms.HtmlElement curInput in elements)
{
       if (curInput.GetAttribute("name") == "q") // 
       {
             curInput.SetAttribute("value", "I changed the value of this input");
             break;
       }
}

// etc

我认为这种方法有效,但不是最好的解决方案。我尝试使用 webclient 类,这似乎有效,但由于某种原因它不起作用。我相信它不起作用的原因是因为我必须保存 cookie?

所以我的问题是我如何能够跟踪发送到服务器的所有字节以及所有响应的字节以下载我需要的内容。换句话说,我希望让 webclient 充当 webbrowser,一旦我通过查看源代码来达到我需要的部分,我应该能够解析我需要的数据。

如果有人可以向我展示如何执行此操作的示例,我将不胜感激。谷歌浏览器在显示大量信息方面做得很好: 在此处输入图像描述

提前致谢,

安东尼奥

4

1 回答 1

1

回答你的问题:

  1. 我所知道的跟踪流量的最佳实用程序是Fiddler(它是免费的)。
  2. 对于发送高级 HTTP 请求,您应该使用 class System.Net.HttpWebRequest,它也具有 propertyCookieContainerHeaders,允许您做任何您想做的事情。

希望能帮助到你。

于 2012-08-22T20:32:41.267 回答