2

記事を表示するWebページから本文を抽出する方法が必要です。Readabilityが実行されている任意のWebサイトでメインテキストを見つける方法と同様です。

私はRubyonRailsを使用しているので、Hpricotが最善の策だと思います。私が探しているものはHpricotで可能ですか?どこかに例はありますか?読んでくれてありがとう。


4

2 に答える 2

5

確かに、Hpricotを使用して、任意のHTMLページからコンテンツを取得できます。

ステップバイステップのチュートリアルは次のとおりです。http ://www.igvita.com/2007/02/04/ruby-screen-scraper-in-60-seconds/

Hpricotは、XPath式を使用して既知のHTML構造を持つファイルを解析するのに理想的です。

ただし、任意のWebページを読み取り、主要な記事のテキストを識別できる一般的なものを作成するのに苦労します。そのためには、(少なくとも)Hpricotが実行できる範囲をはるかに超えた、ある種の基本的なAIが必要になると思います。

あなたができることは、おそらく、スクレイプしたい一般的なHTMLフォーマット(おそらくWordpress、Tumblr、Bloggerなど)のコードセットがあれば、そのセットを書くことです。

また、それを試すためのヒューリスティックを思い付くことができると確信しています(これは、読みやすさがどれだけうまく機能するかに基づいて、私が推測することです-完璧にはほど遠いようです)

ヒューリスティックで最初に突き刺す:

1)「テキストのメインブロック」の一部と見なすことができる(固定された)タグのセットを特定します(例<p> <br> <img>など)。

2)ページをスクレープし、(1)のタグのみを含むページ上のテキストの最大ブロックを見つけます。

3)(1)のタグを削除して(2)のテキストを返します。

読みやすさの結果を見ると、このヒューリスティックもうまくいくと思います。

于 2010-07-20T09:24:05.863 に答える
4

実際の可読性は、http ://code.google.com/p/arc90labs-readability/でホストされているオープンソースプロジェクトです。

メインファイルを読んだ後、rubyで再実装できなかった理由はわかりません。これはメインファイルです http://code.google.com/p/arc90labs-readability/source/browse/trunk/js/readability.js

grabArticle関数を見て、どのメトリックが使用され、どのように実行されるかを確認することをお勧めします。

domを解析および処理するためにどのlibを使用する必要があるかについては、複数の選択肢があります: nokogirilibxml-rubyhpricot、..。

これらはすべて、かなりまともなドキュメントもあります。

于 2010-07-20T09:51:38.097 に答える