【问题标题】:detect Javascript libraries using Jsoup in Java在 Java 中使用 Jsoup 检测 Javascript 库
【发布时间】:2018-07-05 04:35:39
【问题描述】:

我知道有一些方法可以通过检查库是否为全局变量window.Libraryname 来使用 JavaScript 来检测库。我如何在 JSoup 中做同样的事情?

注意(我知道如果库没有注册为全局变量而是在该应用程序的范围(函数)内定义,这将不起作用。)

但我想知道有没有办法使用 Java 和 Jsoup 库来检测网页中使用的所有 JavaScript 库?也许解析页面并寻找<script> 标签?还是有更好的方法?

【问题讨论】:

  • 您能否提供一些 HTML 示例并展示您希望从中提取的内容?
  • 所以我发现使用Jsoup提取库并不好。由于 Jsoup 是一个 HTML 解析器,它无法检测到后来添加到 DOM 中的任何 asycdefer 标记。我最终使用 GhostDriver + Selenium 来获取 DOM 并让 Jsoup 解析它。

标签: javascript java jsoup html-parsing


【解决方案1】:

您可以尝试查找页面的所有script标签。

然后分析script标签的属性如:src、innerText、...

if (script.src === 'http://code.jquery.com/jquery-3.3.1.js') {
   return {
       library: "jquery",
       version: "3.3.1"
   };
}

您需要大量的 CDN URL 或字符串模式来识别和识别库。

编辑:添加版本标识

【讨论】:

  • 这可以工作,但它会将同一库的不同版本视为两个不同的库。
  • 这将取决于 URL 的识别是如何完成的
猜你喜欢
  • 2016-05-21
  • 2010-10-01
  • 1970-01-01
  • 2018-07-21
  • 2021-09-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-13
相关资源
最近更新 更多