2012-07-24 17 views
9

私はそれを定義する方法はわかりませんが、基本的には特定のURLから関連する画像とテキストの概要を取得したいと考えています。URLから関連する画像と要約を取得

たとえば、ユーザーがFacebook上の共有ボックスへのリンクをペーストすると、記事自体および関連する画像から記事タイトルおよび/または短いテキストブロックがすぐに取得されます。 これは、Google +、これらのような他のソーシャルネットワークやサービスの

同じ...物品自体の周りからサイトまたはテキストのロゴのように、間違ったイメージを取得したことがありません。

私は、次のコードを使ってページの内容を読む必要があると考え始めました。どのイメージが関連するもの(記事本文から)であり、どのテキストが記事のテキストであるかをどのように判断できますか? (誰かが例えばスニペットを持っており、共有して喜んでない限り)それでも、これをアプローチする方法についての詳細

URL oracle = new URL("http://www.oracle.com/"); 
BufferedReader in = new BufferedReader(
    new InputStreamReader(oracle.openStream())); 

String inputLine; 
while ((inputLine = in.readLine()) != null) 
    System.out.println(inputLine); 

in.close(); 

が、私はここにコードを求めていない、もちろんだよ...どこで始めるのですか?

ご協力いただければ幸いです!

+1

恐らくそれはあなたを助けるでしょうhttp://stackoverflow.com/questions/5482897/extract-information-from-link-like-facebook-wall – logcat

+0

ありがとう、それに見えますが、それはかなり限られているようです。 Facebookがそれをするのではなく、もっと一般的なやり方があると思います。 –

+0

こんにちは、あなたはその間にこれを行うことができましたか?私は本当にトピックの更新を感謝します。ありがとう!詳しい回答はありがとうございます。 – Cos

答えて

9

生のテキスト抽出のためにBoilerpipeをお勧めします。いくつかの高度なアルゴリズムを使用して、関連するテキストを見つけ出し、それを取り巻くボイラープレート(メニュー、フッターなど)を削除します。

コメントに関して既に提案されているメタタグを使用する以外に、htmlパーサー(htmlparserなど)を使用してすべての「img」タグを抽出し、ヒューリスティックを使用して最良のものを選択することができます。私はのようないくつかのヒューリスティックを使用しています:

  • イメージはありませんより小さい30px、彼らはアイコンや広告のトラッキング画像が
  • ザ・が、これは支配者と同様のもの
  • ありません標準の既知のバナーサイズを回避し、より良い平方通常、
  • 私が使用してきた

(これは難しいです)ボイラープレートによって抽出されたコンテンツの近く

  • より良いページでより高いですある程度の時間をかけてページスクレイピングを行うための生産における経験則と、良い結果をもたらします。

    ただし、これらのルールを適切に適用するには、画像をダウンロードしてサイズやパーススタイルの属性を取得する必要があります。

    このサーバー側をページスクレイピングサービスとして実行する予定の場合は、問題ありません。あなたがアンドロイドデバイス上で即座にそれを行うことを計画している場合、それはあまりにも重いことができます。

  • +0

    この情報は私にとって素晴らしいスタートです。私は、リンクを持つ投稿の画像や情報を取得しているようだが、おそらく彼らはサーバー側でそれをやっている... AndroidのAndroidアプリケーションについては不思議に思う...あまりにも悪いのは難しく、オープンソースではない:) –

    関連する問題