当您发出 WebRequest 时,您是在要求服务器为您提供页面文件,但该文件的内容尚未被 Web 浏览器解析/执行,因此其上的 javascript 尚未执行任何操作。
如果你想看到页面被浏览器解析后的样子,你需要使用一个工具来执行页面上的JavaScript。您拥有的一种选择是使用内置的 .net Web 浏览器控件:http : //msdn.microsoft.com/en-au/library/aa752040(v=vs.85).aspx
Web 浏览器控件可以导航到并加载页面,然后您可以查询它的 DOM,该 DOM 将被页面上的 JavaScript 更改。
编辑(示例):
Uri uri = new Uri("http://www.somewebsite.com/somepage.htm");
webBrowserControl.AllowNavigation = true;
// optional but I use this because it stops javascript errors breaking your scraper
webBrowserControl.ScriptErrorsSuppressed = true;
// you want to start scraping after the document is finished loading so do it in the function you pass to this handler
webBrowserControl.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(webBrowserControl_DocumentCompleted);
webBrowserControl.Navigate(uri);
private void webBrowserControl_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlElementCollection divs = webBrowserControl.Document.GetElementsByTagName("div");
foreach (HtmlElement div in divs)
{
//do something
}
}