【问题标题】:Extract HTML content from GWT page从 GWT 页面中提取 HTML 内容
【发布时间】:2012-04-26 10:13:42
【问题描述】:

我想解析一个用 GWT 编写的 HTML 页面的内容。我尝试使用 Jericho HTML 内容解析器对其进行解析,但问题是页面源没​​有内容。在对 GWT 页面做了一些研究之后,我了解到 GWT 页面是用 JAVA 编写的,GWT 编译器从 java 代码创建了一个复杂的 js 页面结构,以在浏览器上显示 HTML 内容。

有没有办法解析这些类型的页面?

【问题讨论】:

    标签: html gwt html-parsing jericho-html-parser


    【解决方案1】:

    就像 (m) 任何“单页 Web 应用程序”(包括 Twitter,它不是使用 GWT 构建的)一样,您必须运行 JavaScript 代码,然后抓取 DOM。

    这可以使用HtmlUnitPhantomJS 或类似工具轻松(一切都是相对的)完成。

    【讨论】:

    • GWT 以非人类可读的形式编译代码。如何解决?
    • 解析非GWT构建的页面没有问题。正如@HashimR 提到的:GWT 以非人类可读的形式编译代码。有没有办法可以检测到它是 GWT 页面还是普通网页?
    • 还有很多其他混淆JS代码的“编译器”(UglifyJS、Closure Compiler、YUI Compressor等),GWT也不例外。正如我所说:不要试图读取代码,只需运行它!
    • 这是一个不是使用 GWT 构建的示例:twitter.com/#!/opera/status/195796939709743105
    • 无论是在服务器端用 Java 编写的什么,最终都会在浏览器环境中转换为 HTML/CSS/Javascript,以便它可以呈现页面。那么源代码怎么还是空白呢?
    【解决方案2】:

    如果代码在OBF - Obfuscated mode 中编译(代码通常在此模式下编译以供生产使用)将非常困难,因为创建的JS 文件是非人类可读的。

    link 可能有助于您更好地了解 GWT 编译器。

    编辑

    Here you go。这也可能会有所帮助。这里提到了如何De-obfuscate the Javascript

    EDIT2

    GWT-Penetration-Testing-Toolset - 检查这个工具。

    【讨论】:

      猜你喜欢
      • 2012-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-03-22
      • 1970-01-01
      • 2012-02-11
      相关资源
      最近更新 更多