【问题标题】:Reduce HTML using Applets使用 Applet 减少 HTML
【发布时间】:2014-05-01 09:27:54
【问题描述】:

我的主管要求我通过查看 HTML 标签以仅显示核心内容以编程方式减少网站的内容。重要的是,项目的这个特定部分必须用 Java 编写。

现在了解了Plugins, Extensions, Applets, and Widgets 之间的区别,我想我想使用一个调用客户端 Applet 的扩展。我的方法是这样的:

  1. 使用 Google-Chrome API,我将显示一个按钮 用户可以点击。
  2. 如果单击,则操作是启动一个新的浏览器选项卡,其中包含 嵌入其中的小程序。
  3. 小程序会自动获取被调用选项卡的 HTML 代码和 过滤它。
  4. 过滤后,会显示原始网站的缩小版。

所以我有几个问题。首先,是否可以将扩展程序与 Applet 一起使用?此外,小程序是否可以查看@另一个选项卡的 HTML 代码?如果没有,是否可以重新加载带有现在嵌入其中的 Applet 的原始选项卡并完成该功能。谢谢。

【问题讨论】:

  • 这可能是题外话,我不确定,因为我不声称完全符合您的描述中的要求。但是,考虑到远离客户端 Java 和其他浏览器插件的快速趋势,包括大多数浏览器在遇到小程序时会打开的多个可怕的安全警告,你最好将你的逻辑实现为服务器端 Java,计算你的缩减页面一个小服务程序?您的主管是特别坚持使用客户端 Java,还是允许使用服务器端 Java?
  • 虽然他对这些细节的描述很不起眼,但我认为最好还是去客户端。这是为了避免增加数据传输成本,因为在稍后阶段它可以在移动设备上运行。
  • “移动设备”不支持小程序。正如人们所说/评论的那样,要么使用代理,要么在 服务器端(例如 JSP、Servlets..)上查看 Java。 IMO 最好的解决方案是服务器端,因为这是 a) 将在所有浏览器上“支持”的唯一选项。 b) 可以减少下载。 c) 不容易被高级用户绕过。
  • 顺便说一句 - 该规范。听起来像是一种很好的表达方式“是的..我们正在抄袭整个网站,但不想寻求许可或给予信任,所以我们将剥离侵犯版权的那部分证据” 这一切旨在支持什么?
  • 感谢您提供有关 JSP 和 Servlet 的信息,并提出一个有关版权的有趣问题。好吧,一个选项可能是解析此类语句的整个文本,然后取消。然而,一个好的 EULA 是最好的。

标签: java html google-chrome applet


【解决方案1】:

Javascript 已经出现在大多数移动网络平台上。 Java 不是,而且没有合理的方法可以让移动客户安装 Java。运行许多(但不是全部)移动设备的 Android 具有 Java 运行时环境,基本上是 Java 应用程序的加载器。但 Apple iPhone 不是 Android 设备……Windows Phone 也不是。

如果你想在客户端和 Javascript 中总结内容,我认为你有两个选择:

  1. 在自然语言计算领域的数十位最优秀的专家级博士刚刚开始探索如何从文本中提取“真正的意义”时,内心爆发了一些天才;或
  2. 查看document.title 并完成它。

第二种方法假设网页的作者设置标题并设置适合总结其网站的标题。这不是一个完美的假设,但没关系 大多数时候。它也比#1便宜很多

使用第一种方法,您可以先使用“自然语言工具包”,该工具包可以执行诸如扫描文本以查找不寻常的单词和短语之类的操作。要大致了解该领域已构建的软件种类,请查看wikipedia: Outline of natural language processing:: toolkits。一个流行的 Python 语言称为 NLTK。无论您使用来自 java 还是 python 的工具包,都意味着在服务器上工作,因为客户端将没有存储、网络速度或 CPU。对于 python,有服务器端应用程序框架,如 django 或 web2py,可以更快地构建服务器应用程序,而在 Java 上,有 servlets 框架。最终,您将需要大量帮助、培训或运气,正如我在上面所暗示的那样,这很容易超出一小群新员工的能力,当然也超出了一个渴望证明自己的新开发人员的能力。在有限的帮助下,这些能力可以在几周内自行完成。

大多数网页在下载的 HTML 的开头附近都有这样设置的标题:

<head><title>My Furry Kittens!</title></head>

您不需要编写解析器。如果您在浏览器中运行,则标题已被解析为 DOM 或文档对象模型。此示例中的字符串"My Furry Kittens!" 将在全局变量document.title 中可用。

如果您愿意,您可以在插件中添加一个按钮,然后让人们推送它来总结网站。或者,他们可以只看标题。它已经在页面上。当然,如果目标是抓取标题,则可以避免编写解析器并使用“假”无头可脚本浏览器,如 phantomJS 或类似浏览器。

您可以在Mozilla Developer Network 上阅读有关document.title 的更多信息。 MDN 是学习 Web 浏览器工作原理的绝佳参考。他们是 Mozilla Firefox 浏览器的维护者。您可以在那里学到的大部分内容也适用于 Chrome、Internet Explorer 和各种移动平台。

祝你好运!

【讨论】:

  • 跟随你的维基链接;我发现“Learning Based Java”工具包(伊利诺伊大学)是最有帮助的。为信息、新术语和建议干杯:)
【解决方案2】:

如何在移动设备上实现本地代理服务器。只需将浏览器配置为使用代理,而自定义代理实现可以随意转换请求的 html。

【讨论】:

  • 扩展程序是否能够自动配置浏览器,以便它可以使用代理服务器?你甚至可以在手机上安装代理服务器吗? :\
  • 我的想法是,通过编写代理,您可以避免接触浏览器,另外还有一个好处是您的解决方案将与所有浏览器兼容。只是有点谷歌搜索Local Proxy Server Running On Android Device
猜你喜欢
  • 2015-08-04
  • 1970-01-01
  • 2012-02-23
  • 2019-06-30
  • 2017-06-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多