在c中从网页检索ajax/JavaScript返回结果#

在c中从网页检索ajax/JavaScript返回结果#,javascript,c#,html,ajax,Javascript,C#,Html,Ajax,我正在尝试用c#检索网页的内容。问题是网页使用Ajax和JavaScript动态创建和填充HTML元素 我说的网页是: 如果使用httpWebRequest获取网站的HTML代码,则只有JavaScript调用可见,而内容不可见。那么,如何才能在控制台c#程序中获得显示在网页上的JavaScript的返回结果呢?我尝试过使用web浏览器类,但无法使其正常工作 如何在新线程中使用web browser类在数组列表中显示动态创建的表的结果?此外,如果您不知道名称,如何访问相关的HTML标记?你能用身

我正在尝试用c#检索网页的内容。问题是网页使用Ajax和JavaScript动态创建和填充HTML元素

我说的网页是:

如果使用
httpWebRequest
获取网站的HTML代码,则只有JavaScript调用可见,而内容不可见。那么,如何才能在控制台c#程序中获得显示在网页上的JavaScript的返回结果呢?我尝试过使用web浏览器类,但无法使其正常工作

如何在新线程中使用web browser类在
数组列表中显示动态创建的表的结果?此外,如果您不知道名称,如何访问相关的HTML标记?你能用身份证标签吗?这是假设web浏览器类是实现这一点的最佳方式。还是有更好的办法

相关的HTML代码部分是:

<div class="ajax_table" id="53c2583b1f204464d7fa9387e2ac1868"><script>blackmamba_pager('Textmining', 'type1=9606id1=ENSP00000317985type2=-26title=Text+mining',
10, 1, '53c2583b1f204464d7fa9387e2ac1868');</script></div>
blackmamba_寻呼机('Textmining','type1=9606id1=ensp0000317985type2=-26title=Text+mining',
10,1,'53c2583b1f204464d7fa9387e2ac1868');

请给我举一个例子说明如何做到这一点。然后,也取自堆栈溢出:):


没有像jQuery那样通过类名直接获取元素的方法。如果表div的id不稳定,可以使用GetElementsByTagName,遍历结果。然后,您可以使用GetAttribute(“classname”)来匹配您的“ajax\u table”类。

我已经看过tI的可能副本,我已经看过其他问题的答案,但不明白如何将该示例用于我的场景。我添加了更多信息来澄清问题。我尝试将其更改为在控制台程序上工作。但是,我得到了一个空指针异常,用户代码在下面一行未处理。下面是我的代码:private void runBrowserThread(Uri url){var th=new Thread(()=>{var mywebBrowser=new WebBrowser();mywebBrowser.DocumentCompleted+=new WebBrowserDocumentCompletedEventHandler(mywebBrowser\u DocumentCompleted);mywebBrowser.Navigate(url);Application.Run();});th.SetApartmentState(ApartmentState.STA);th.Start();}私有无效mywebBrowser_文档已完成(对象发送方,WebBrowserDocumentCompletedEventArgs e){//直到此时,页面还没有完全加载HtmlDocument doc=mywebBrowser.Document;//此处错误HtmlElement tagCollection;tagCollection=doc.GetElementById(“53c2583b1f204464d7fa9387e2ac1868”);}为什么我会出现这种异常?你会进一步得到带有tagCollection.InnerTeks的表的内容吗?在我看来,当你在线程中创建webbrowser控件时,它对文档完整回调不可见。它希望控件对它可用。好的,但是为什么myWebBrowser的HtmlDocument为空?这是否意味着找不到我正在使用的d或该页未加载。我的代码中是否有任何内容必须更改才能修复此问题?
WebBrowser mywebBrowser;
private void Form1_Load(object sender, EventArgs e)
{
 mywebBrowser = new WebBrowser();
 mywebBrowser.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(mywebBrowser_DocumentCompleted);

 Uri address = new Uri("http://www.cnn.com/");
 mywebBrowser.Navigate(address);
}

 private void mywebBrowser_DocumentCompleted(Object sender,WebBrowserDocumentCompletedEventArgs e)
 {
  //Until this moment the page is not completely loaded
  HtmlDocument doc = mywebBrowser.Document;
  HtmlElementCollection tagCollection;
  tagCollection = doc.GetElement("53c2583b1f204464d7fa9387e2ac1868");
 }