【问题标题】:How to load dynamically generated webpage?如何加载动态生成的网页?
【发布时间】:2014-08-17 05:14:02
【问题描述】:

我正在尝试加载网页http://www.artstation.com/artist/nicotine,以便我可以清理页面,不幸的是该页面似乎是通过代码生成的,因此我正在寻找的标签不可用。

使用以下内容加载它不起作用,因为它只加载源 javascript,而不是它生成的内容:

HtmlWeb htmlWeb = new HtmlWeb();
imagepage = htmlWeb.Load(http://www.artstation.com/artist/nicotine);

如何加载页面显示在浏览器中的页面,以便我可以清理它的标签?

【问题讨论】:

  • 我不确定什么是擦洗。如果您只是对获取 HTML 感兴趣,请在浏览器中加载网页并使用 document.body.innerHTML。你也可以copy the content to clipboard
  • 您应该使用Fiddler 来查看页面加载时经过的流量。除此之外,请阅读代码中的 JavaScript。
  • 诚然,我认为指出这是一种道德责任,该网站看起来不像您那样欢迎清理。看起来,通过动态地进行,他们正在采取特定的步骤为了使其难以做到。

标签: c# html html-agility-pack data-scrubbing


【解决方案1】:

您不能为此使用 HtmlAgilityPack。当 HAP 请求服务器给你页面文件时,这个文件的内容还没有被网络浏览器解析/执行,所以它上面的 JavaScript 还没有做任何事情。

有一个解决方法。您可以使用seleniumphantomJs 来获取动态生成的标签的内容。这些工具具有浏览器堆栈,它将执行您的 JavaScript。您可以找到许多其他类似的工具和大量示例。

【讨论】:

    猜你喜欢
    • 2021-04-15
    • 2011-08-16
    • 1970-01-01
    • 2015-07-04
    • 1970-01-01
    • 2014-09-01
    • 1970-01-01
    • 2016-04-07
    • 1970-01-01
    相关资源
    最近更新 更多