【问题标题】:How to "render" HTML without WebBrowser control如何在没有 WebBrowser 控制的情况下“呈现”HTML
【发布时间】:2012-05-12 08:07:01
【问题描述】:

首先 - 我不知道“渲染”是否是正确的词。我喜欢从网站获取信息。因此,目前我使用 WebBbrowser 控件。 现在我喜欢使用 HttpWebRequests,因为我认为这样更快,并且可以更轻松地使用线程。但我不能使用它们,因为我从 HttpWebRequest 收到的 HTML 输出字符串有很多 JavaScript,其中我需要的信息将被创建。 Web 浏览器将 JavaScript“呈现”为可读的 HTML。如何“手动”完成这一步,以便我可以使用 HttpWebRequests?

希望你明白,我想要什么。

【问题讨论】:

  • 您可能更喜欢 WebClient 而不是 HttpWebRequest。无论如何,听起来您正在尝试抓取不打算以这种方式使用并且会违反使用条款的页面。您是否检查过是否存在可让您检索信息的(WebService)API?
  • 请修改你的问题,很不清楚。
  • @user845279 这个问题本身很清楚,但肯定已经在其他地方得到了回答。我把它留给其他人去寻找匹配的副本。

标签: c# javascript .net httpwebrequest webbrowser-control


【解决方案1】:

所以如果你需要 javascript 渲染引擎,我建议你看看selenium 项目。

【讨论】:

    【解决方案2】:

    我通过一个名为Awesomium 的项目解决了我的问题。在这个thread 中,您将找到使用已执行的 javascript 获取 html 所需的一切。 “特殊部分”是这个:

    var sourceVal = webView.ExecuteJavascriptWithResult( "document.getElementsByTagName('html')[0].outerHTML;" );
    
    if ( sourceVal != null )
    {
        using ( sourceVal )
        {
            html = sourceVal.ToString();
        }
    }
    

    【讨论】:

    • 您也可以使用 HTTPWebrequest 和 httpwebresponse 对象来执行此操作。
    • 你能解释一下,如何在我从 HTTPWebRequest/HTTPWebResponse 获得的 html 中执行 Javascript 吗?
    猜你喜欢
    • 1970-01-01
    • 2013-06-21
    • 1970-01-01
    • 1970-01-01
    • 2020-12-02
    • 1970-01-01
    • 2012-10-06
    • 1970-01-01
    • 2018-11-29
    相关资源
    最近更新 更多