現在、Jsoupを使用して、サード パーティの Web ページから特定の情報 (すべてのテキストではない) を抽出しています。定期的に行っています。これは、特定の Web ページの HTML が変更されるまで問題なく機能します。この変更は、既存の Java コードの変更につながります。これらの Web ページは非常に頻繁に変更されるため、これは面倒な作業です。また、プログラマーが 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>
ここで私がやりたいことは次のとおりです。この Web ページ (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>
Web ページの実際の URL とともに、これらの HTML テンプレートは Java プログラムへの入力となり、これらの定義済みキーワード ( {MOVIE_RATING}、{MOVIE_DIRECTOR}など) の場所を見つけ、実際の Web ページから値を抽出します。
この方法では、Web ページが変更されるたびに Java プログラムを変更する必要はありません。Web ページの 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でこれをどのように達成できるかということです。この問題に対する既存のより良いアプローチはありますか?
注: グーグルでいくつかの研究論文を見つけましたが、それらのほとんどは事前の学習データを必要とし、精度も懸念事項です。