2012-12-09 8 views
11

ウェブページを解析して意味のあるコンテンツを抽出したいと考えています。意味があるとは、ユーザーが特定のページ(広告、バナー、コメントなどを除いたデータ)で見たいコンテンツ(テキストのみ)を意味します。ユーザーがページを保存したときに、読み取りは保存され、それ以外は保存されません。ウェブページから意味のある有用なコンテンツを取り出す方法は?

要するに、わかりやすさのように動作するアプリケーションを構築する必要があります。 (http://www.readability.com)私は、この有用なウェブページのコンテンツを別々のファイルに保存する必要があります。私はそれについてどうやって行くのか本当にわからない。

データ抽出のプロセスをオフラインで行う必要があるため、私はインターネットに接続してサーバーからデータを取得する必要があるAPIを使用したくありません。

私は考えることができ2つの方法があります。

  1. は(このような:http://ai-depot.com/articles/the-easy-way-to-extract-useful-text-from-arbitrary-html/)機械学習ベースのアルゴリズムを使用し

  2. 満足にウェブからすべての混乱を取り除くことができ、ウェブスクレーパーを開発ページ。

これを行うツールはありますか?私はボイラーパイプのライブラリ(http://code.google.com/p/boilerpipe/)に出くわしましたが、それを使用しませんでした。誰か使ったことがありますか?それは満足のいく結果をもたらすか? この種のWebスクレイピングを行うPHPやPythonで書かれた他のツールはありますか?

これを行うための独自のツールを構築する必要がある場合は、どうしたらいいですか?

私はその構文解析を開始する前に、私は仕事をするのTidy(http://www.w3.org/People/Raggett/tidy/)や美しいスープ(http://www.crummy.com/software/BeautifulSoup/bs4/doc/)のようなツールを使用したい厄介または不完全なHTMLをクリーンアップする必要があると思いますので。

しかし、この手順の後にコンテンツを抽出する方法はわかりません。

PS。私はアマチュアであり、これを行うオープンソースツールを使用する準備ができていれば大好きで、PHPやPythonで書くコードに簡単に組み込むことができます。 自分のコードを書く必要がある場合は、前にそのような作業を行った人の指導を受けることが大好きです! :) ありがとう!

答えて

9

Googleに 'python readability'と入力しましたか? githubにはかなり人気のある(200人以上のフォロワー)ライブラリがあります。

https://github.com/buriy/python-readability

また、あなたはそれがほぼ二年https://github.com/feelinglucky/php-readability

、最終的に最も人気のための活動を持っていない100人の信者を持っていても「PHPの読みやすさ」を入力した場合、PHPものがあります(350 + github folowers)はルビー可読性ポートです https://github.com/iterationlabs/ruby-readability

少なくとも3つの異なるプロジェクトがウェブページの「重要な部分」をどのように解析するかを見ることができます。

+0

返信いただきありがとうございます。私が言ったように、私はアマチュアであり、インターネットアクセスなしでこれがサーバー上でローカルに動作するかどうかはわかりません。私はHTML文書(ディスクに保存されている)を渡したいのですが、これで私に「クリーン」なファイルを返すことができますか? これは基本的に、可読性サービス(可読性サーバーへのアクセスが必要)に対するAPIですか、これは自給自足のコードですか? ありがとう! :) – user1271286

+0

@ user1271286これらはWebリクエストを必要としないライブラリです。あなたはpythonの可読性 'のようなhtmlを渡すことができます' readable_article = Document(html).summary() readable_title =ドキュメント(html).short_title() '' html'はHTMLの文字列です – dm03514

+0

ありがとう! :)それで動作し、私はここでどのようにうまくいったの投稿します! – user1271286

2

htqlを使用できます。

import htql 
page="..." 
query="&html_main_text" 

result=htql.query(page, query) 
+0

ありがとう!使用するのは非常に簡単です! :)それを試してみましょう! – user1271286

関連する問題