私はSafariのリーダー機能に触発されました。この機能を使用すると、ストーリーを除くWebページ上のすべてのコンテンツ(ページのポイントを構成するすべてのテキスト、リンク、および画像を無視できますが、マークアップ、前件、または後件はありません) 。軽量の「ブラウザ」としてJavaベースのバージョンを作成したいと思います。
私の問題はここにあります:私はメインコンテンツを識別する方法を正確に知りません。MSNの記事やファンフィクションなどの読者が認識したページを調べたところ、読者が認識した実際のテキストは見つけにくいだけでなく、一貫性がなく、一見ランダムなタグで分割されていることがわかりました。たとえば、ニュースリンクはストーリーをで始まり、<div class="postBody">
すべての段落は<p>
sで始まりますが、リンクされたフィクションはで始まり<div class="chapter_content" id="chapter_container">
、すべての段落はで始まり<br /><div style='float:left; height:1.0em; width:3.0em;'></div>
ますが、独自のコンテナ内にはありません。
Safariはこの「リーダー」インターフェースをサポートしているので、明らかにこれを行う方法があります。そのため、それが存在するかどうかは尋ねません。代わりに、私はこれを知りたいと思います。ページ自体がどのように構築されているかに関係なく、Webページ上のストーリーのタイトルと本文を抽出するための優れた高速のJavaサポートアルゴリズムは何ですか?
コンテキストとして、JEditorPaneをウィンドウとして使用する基本的なブラウザーを作成しました。そのEditorKitはHTMLEditorKitに設定されており、このsetPage(URL page)
メソッドを使用してターゲットページを表示していますが、これにより必要に応じて変更される可能性があります。