现在我使用Jsoup从一些第三方网页中提取某些信息(不是所有文本),我会定期进行。这工作正常,直到某些网页的 HTML 发生变化,这种变化会导致现有 Java 代码发生变化,这是一项繁琐的工作,因为这些网页变化非常频繁。它还需要程序员来修复 Java 代码。这是我在网页上感兴趣的 HTML 代码示例:
<div>
<p><strong>Score:</strong>2.5/5</p>
<p><strong>Director:</strong> Bryan Singer</p>
</div>
<div>some other info which I dont need</div>
现在这就是我想要做的,我想在本地保存这个网页(一个 HTML 文件)并从中创建一个模板,比如:
<div>
<p><strong>Score:</strong>{MOVIE_RATING}</p>
<p><strong>Director:</strong>{MOVIE_DIRECTOR}</p>
</div>
<div>some other info which I dont need</div>
连同网页的实际 URL,这些 HTML 模板将作为 Java 程序的输入,Java 程序将找出这些预定义关键字的位置(例如{MOVIE_RATING}、{MOVIE_DIRECTOR})并从实际网页中提取值。
这样我就不必每次网页更改时都修改Java程序,我只需保存网页的HTML并用这些关键字替换数据,其余的将由程序处理。例如,将来实际的 HTML 代码可能如下所示:
<div>
<div><b>Rating:</b>**1/2</div>
<div><i>Director:</i>Singer, Bryan</div>
</div>
相应的模板将如下所示:
<div>
<div><b>Rating:</b>{MOVIE_RATING}</div>
<div><i>Director:</i>{MOVIE_DIRECTOR}</div>
</div>
非程序员也可以创建此类模板,任何可以编辑文件的人都可以完成。
现在的问题是,我怎样才能在 Java 中实现这一点,是否有任何现有的更好的方法来解决这个问题?
注意: 在谷歌搜索时,我发现了一些研究论文,但其中大多数都需要一些先前的学习数据,准确性也是一个问题。