人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

ブログなどからRSSを取得し表示するアンテナサイトを作っています。
RSS取得と同時にその記事の画像も取得しています。現在のアルゴリズムは記事タイトルより下にある画像を1枚表示するようにしていますが、サイトによっては記事と関係のない画像を取得してしまいます。
たとえば記事タイトルと記事の画像の間にアイコンがあったり、メニューバーなどの背景があるとそれを表示してしまいます。
これらを回避し、記事にあった最初の画像1枚の取得精度を上げるにはどのようにすればいいのでしょうか。
イメージとしては
http://hn-antena.com/
上記のようなサイトを目指しています。
取得元となるサイトはほとんどがFC2かライブドアです。

少しわかりにくかもしれませんが、よろしくお願いいたします。

●質問者: numb08
●カテゴリ:コンピュータ インターネット
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● kodairabase
●36ポイント

画像のALT属性をチェックして、記事内容にマッチするものをチョイスすればいいと思います。


うぃんどさんのコメント
ALTは書き込まれてないほうが多いですよ 特にブログでは皆無に等しいですよ 仮に書き込まれているとして、 どうやって記事内容とマッチするかを判断しますか?

2 ● うぃんど
●66ポイント

RSSには10件20件と記事が入っていますが、
それを記事毎に1つ1つ処理してしまうのではなく、
まずは、それらの記事を一通り全て読み込んでしまいます

そして、それらに含まれる全ての画像URLを抜き出し、
同じURLを一括削除してしまってから、
記事毎の処理に移って1つの画像ファイルを取得します

これで共通部分は削除できるはずですよ


3 ● rish314
●98ポイント ベストアンサー

windofjuly さんの回答はシンプルでいいですね。

はてぶを新聞風に閲覧できるHatebuPaperを作ってみた - ゆーすけべー日記
は、本文抽出を行い、先頭の画像を特徴的な画像としてます。サンプルコードもあるので、是非とも参考にしてみてください。

本文抽出に関しては、様々な言語でライブラリが作成されておりますので参考にしてみてください。一時期はネットでも結構話題になりましたが、最近は下火です。
タグ「本文抽出」を含む新着エントリー - はてなブックマーク

あと、どこかでスライドを見たのですが、http header の画像サイズを見て判定している人もいるようです。それってもしかして画像を全てDLする必要があるのではないか…と思い、自分は試してません。

自分は、htmlのメタデータを利用して機械学習を行い、それが本文の画像かどうかを判定しています。naive-bayes で判定を行っているのですが、もうちょっと調整すればもうちょっと安心して使えるようになるかなぁと言った感じです。


tdoiさんのコメント
横から失礼。 画像サイズの判定がどんなものか分かりませんが、HEADリクエストをするだけでよいので、画像をダウンロードする必要はありませんよ。 参考:http://www.studyinghttp.net/method#HEAD

numb08さんのコメント
貴重なご意見ありがとうございました。大変参考になりました。サイズで選別するというのは有効かもしれませんので、それでやってみます。

rish314さんのコメント
tdoiさん; 横からありがとうございます。HEADリクエストってできるんですか。非常に参考になりました。手元のプロジェクトでも試してみます。
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ