【问题标题】:C# web scraping JavascriptC# 网页抓取 Javascript
【发布时间】:2013-05-28 05:14:51
【问题描述】:

假设我的网站有源代码:

<!DOCTYPE html>
<html>
<head>
    <title>Wow</title>
</head>
<body>
    <div id="hello">
    </div>
    <script type="text/javascript">
        function simple() 
        {
            $("#hello").append("<p>Hello</p>");
        }                    
    </script>
</body>
</html>

我想要一个 C#/asp.Net 方法来提取它的源代码如下:

<!DOCTYPE html>
<html>
<head>
    <title>Wow</title>
</head>
<body>
    <div id="hello">
    </div>
<p>Hello</p>
</body>
</html>

string src=new WebClient().DownloadString("http://mywebsite.com")

没有帮助,因为它会提取原始 html 代码以及 javascript,与源代码相同。

【问题讨论】:

  • @mshsayem 不会。
  • 您的意思是,您只想下载 HTML 源页面而不下载任何脚本代码?
  • @mshsayem 看来 OP 不想要无脚本的 html,他/她想要执行脚本。请参阅 html 中的 &lt;p&gt;Hello&lt;/p&gt;
  • @l4v 哦,我现在明白了。误解了问题。谢谢
  • @mshsayem 是的,我想要脚本执行后的 html 代码你能帮忙吗?

标签: c# asp.net c#-4.0 web-scraping


【解决方案1】:

通过查看上面的 cmets,我了解到您正在寻找要在获得最终 HTML DOM 之前执行的脚本。

您需要一个运行脚本的 JavaScript 引擎,这是浏览器的基本机制。 根据您的需要,您可以使用 V8(Chrome 的 JavaScript 引擎)或 SpiderMonkey(Mozilla 的 JavaScript 引擎)自行实现,或者使用两种流行的无头浏览器框架之一:PhantomJS 和 CasperJS。如果您有任何 AJAX 需求,使用它们还将满足您未来的所有 AJAX 需求。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-08-08
    • 2017-03-07
    • 2020-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-06
    相关资源
    最近更新 更多