我正在尝试从网页中检索数据,但我无法通过发出Web请求并解析生成的html文件来实现,因为我正在尝试检索的实际文本不在html文件中!我想这个文本是使用一些脚本提取的,因此它不在html文件中。据我所知,我正在查看错误的数据,但假设我的理论是正确的,是否有一种直接的方法来检索浏览器(Firefox或IE)显示的任何文本,而不是尝试从html中获取文本文件?
答案 0 :(得分:1)
假设您指的是在浏览器中使用Javascript生成的文本。
您可以使用PhantomJS实现此目的:http://phantomjs.org/
它本质上是一个无头浏览器,可以处理Javascript。
您可能需要将此作为外部程序运行,但我相信您可以通过C#
执行此操作答案 1 :(得分:0)
您的另一个选择是在WebBrowser对象中打开应该执行脚本的Web页面,然后您可以获取HtmlDocument对象并从那里开始。
看看这个例子......
private void test()
{
WebBrowser wBrowser1 = new WebBrowser();
wBrowser1.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wBrowser1_DocumentCompleted);
wBrowser1.Url = new Uri("Web Page URL");
}
void wBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
HtmlDocument document = (sender as WebBrowser).Document;
// get elements and values accordingly.
}