gpt4 book ai didi

java - 开发应用程序来检测网页更改

转载 作者:太空宇宙 更新时间:2023-11-04 12:45:03 27 4
gpt4 key购买 nike

我正在尝试使用 java 制作一个桌面应用程序来跟踪对网页所做的更改作为副项目,并监视我的教授何时向他们的网页添加内容。我做了一些研究,我当前的方法是使用 Jsoup 库检索网页,通过哈希算法运行它,然后将当前哈希值与以前的哈希值进行比较。

这是推荐的方法吗?我愿意接受建议和想法,因为在我进行任何研究之前,我不知道如何开始,也不知道 jsoup 是什么。

最佳答案

哈希方法的一个潜在问题:如果页面包含每次刷新时都会更改的任何动态生成的内容(正如许多现代网站所做的那样),您的程序将报告该页面在不断更改。仅当网站不使用任何此类动态内容(广告、点击计数器、社交媒体等)时,对整个页面进行哈希处理才有效。

您具体要寻找哪些内容发生了变化?也许正在发布新的作业?无论如何,您可能不想监视整个页面的更改。因此,您应该使用 HTML 解析器——这就是 Jsoup 的用武之地。

首先,将页面解析为 Document 对象:

Document doc = Jsoup.parse(htmlString)

您现在可以对 Document 对象执行多种方法来遍历 HTML 节点(See Jsoup docs on DOM navigation methods)

例如,假设网站上有一个表格,表格的每一行代表一个不同的作业。以下代码将通过选择表的每个标签,通过表的 ID 和表的每一行来获取表。

Element assignTbl = doc.getElementById("assignmentTable");
Elements tblRows = assignTbl.getElementsByTag("tr");
for (Element tblRow: tblRows) {
tblRow.html();
}

您需要以某种方式查看网页的源代码(例如 Google Chrome 中的 Inspect Element),以弄清楚页面的结构并相应地设计代码。这样,不仅算法会更可靠,而且您还可以更进一步,例如提取已更改的分配的详细信息。 (如果您需要帮助,请使用目标页面的 HTML 编辑您的问题。)

关于java - 开发应用程序来检测网页更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36415217/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com