2

リンク(およびおそらくテキスト)が多いWebページからナビゲーションに使用されるメニューを抽出する方法を探しています。私が興味を持っているページは、非常に単純で有効な XHTML であり、メニューがページの最初または最後のどこかにあることは間違いありません。しかし、それが正確にどこにあるかを見つけるための優れた一般的な方法は、これまでのところ私にはわかりませんでした.

簡単なメモ: 私は読みやすさのようなものを探しているのではありません - メインの記事を見つけて他のすべてを取り除きますが、具体的にメニューを見つける何かを探しています. また、「後継者として多くのリンクを持つ要素を見つける」という単純な方法はあまりうまく機能しません。ページにはかなり長いリンクのリストが含まれる傾向があるためです。

編集: リンクされているページのコンテンツを取得するためのメニューが必要です (情報抽出プロジェクト用の Web スクレーパーを構築しています)。私が使用するいくつかのサンプルページ:

4

2 に答える 2

1

{リンク内の子要素テキストの長さの合計} と {リンクの子要素テキストの長さの合計}の比率を計算します。比率が一定のしきい値を超えており、リンクの絶対数​​が一定のしきい値を超えている場合、要素にメニューが含まれていると見なすことができます。

それだけでは不十分な場合は、レンダリングされた要素のページ上の位置を取得するために、(ブラウザーで、または webkit ライブラリを使用してヘッドレスで) ページをレンダリングする必要があります。

于 2011-05-01T02:56:04.733 に答える
0

Drag0nR3b0rnが述べたように、機能および手動/トレーニングされた決定木として、リンク/非リンクテキスト比率+一般的なメニューワードを使用する必要があります。クロールにはHtmlUnitをお勧めします

于 2011-05-02T07:05:56.530 に答える