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



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

我所说的网页是:http://diseases.jensenlab.org/Entity?order=textmining,知识,实验&textmining=10&知识=10&实验=10&type1=9606&type2=-26&id1=ENSP00000317985

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

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

相关的HTML代码部分是:

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

请给我举个例子说明如何做到这一点?

此处。然后,也取自堆栈溢出:):

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");
}

没有像jQuery那样通过类名直接获取元素的方法。如果表div的id不稳定,您可以使用GetElementsByTagName来迭代结果。然后,您可以使用GetAttribute("类名")来匹配您的"ajax_table"类。

最新更新