Webページのメインコンテンツをプログラムで取得する

情報ノイズからWebページを消去するタスクは、情報検索の緊急のタスクの1つです。 その本質は、情報ノイズをクリアし、メインコンテンツのみを取得することです。

例を考えてみましょう:



メインコンテンツは、ページのこの部分と見なすことができます。



適用できる場所:
ソリューションの説明に進む前に、既存のソリューションについて簡単に説明します。 HTML5の出現により、仕様が新しいセマンティック要素を暗示しているため、メインコンテンツを見つける問題はなくなるはずです。 それらをより詳細に検討しましょう。

HTML5セマンティック要素


現在、次のセマンティック要素が想定されています。古典的なブログ投稿構造:

画像

現在、この方法を使用すると、次のような問題に直面しています。しかし、現時点での最大の問題は、昔に書かれた何十億ものページが存在し、新しい標準を使用して書き換えられる可能性が低いことです。 そのため、コアコンテンツを識別するタスクが重要で関連性があります。

読みやすさ


ウェブサイト: http : //lab.arc90.com/experiments/readability/

可読性はArc90 Labの開発であり、Webページを読みやすい形式にするための小さなブックマークをインストールできます。 可読性は、そのメトリックを使用してDOMモデルを分析し、「有用な」コンテンツを識別します。

可読性の使用例:



現在、さまざまなブラウザ用のプラグインがあり、Safariではこの機能はSafari Readerと呼ばれています。 インターネットで作業する人にとってはこれで十分でしょうが、このツールを使用して独自のスクリプトを作成したい人はどうでしょうか。 実際、それについては後で詳しく説明します。

情報ブロックの重要性に関する研究


私の以前の記事の多くは、この問題の研究に捧げられてきました。特に、そのような出版物を読むことを提案します。独自の開発-SmartBrowser-情報ノイズのWebページをクリアするプロトタイプブラウザーは、 http: //smartbrowser.codeplex.com/のcodeplex Webサイトで長い間利用可能です。

SmartBrowserの新しいバージョンが近日中にサイトで利用可能になります。 正しく認識されたWebページの割合は増加しましたが、モデルとアルゴリズムは実験と研究の結果として簡素化されました。

現在、SmartBrowserは次のようになっています。



動作中のSmartBrowserの操作を検討してください。 Webページの処理は次のようになります。

MainContentExtractor r = new MainContentExtractor(new Uri(tbUrl.Text.Trim()));
var html = r.GetContent();
webBrowser1.DocumentText = r.getTitle().InnerText + html;


すべてのロジックは、開発済みのデータ抽出SDKライブラリのMainContentExtractorクラスにカプセル化されています(現時点では、この機能はまだサイトで利用できません)。

その結果、多くの有名なサイトで次の結果が得られました。













現時点では、たとえばハブラーなど、一部のサイトに問題があります。 そのため、研究開発は現在進行中ですが、近い将来、何らかの安定したアセンブリについて話せるようになることを願っています。

ご清聴ありがとうございました。

Source: https://habr.com/ru/post/J105582/


All Articles