7

私は、PHPでXPATHをスクレイピングして使用してDOMを解析し、ページから必要なものを取得することに精通しています。私が聞きたいのは、ページのヘッダー、フッター、サイドバーをプログラムで無視し、本体のコンテンツのみを抽出する方法に関するいくつかの提案です。

与えられた状況では、特定のターゲットがないため、#header や #footer などの特定の ID を単純に無視することはできません。これは、すべてのページの記述がわずかに異なるためです。

私はグーグルがこれを行うことを知っています、私はそれが可能でなければならないことを知っています、私はそれをどこから始めるべきか本当に知りません.

ありがとう!

4

2 に答える 2

2

それを決定する明確な方法はありませんが、ヒューリスティックな方法で妥当な結果を得ることができます。提案:

同じ Web サイトから 2 つ以上のページをスクレイピングし、トップ レベルから始めてブロックごとに比較を開始し、ブロックが十分に等しくなるまで数レベル深く進みます。比較は == ではなく、類似度インデックス (たとえば、 と) になりsimilar_textます。特定のパーセンテージの類似性を超えるブロックは、ヘッダー、フッター、またはメニューである可能性が最も高くなります。どのしきい値が有用かは、実験によって調べる必要があります。

于 2013-03-31T11:51:42.237 に答える