是否有一种直接的方法来检索由浏览器呈现但在实际的html文件中没有硬编码的文本?

时间:2013-02-08 17:40:30

标签: c# javascript html parsing

我正在尝试从网页中检索数据,但我无法通过发出Web请求并解析生成的html文件来实现,因为我正在尝试检索的实际文本不在html文件中!我想这个文本是使用一些脚本提取的,因此它不在html文件中。据我所知,我正在查看错误的数据,但假设我的理论是正确的,是否有一种直接的方法来检索浏览器(Firefox或IE)显示的任何文本,而不是尝试从html中获取文本文件?

2 个答案:

答案 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. 
    }