javaサーブレットで、ブログの記事を読み込むことはできますか?


例えば、あるブログのすべてのエントリーのタイトルをブラウザに表示させる、などの処理は実装可能でしょうか?
RSSを読み込むというのは、よくあると思うのですが、それだと新着10件(くらい)までしか取得できないと思います。
すべて読み込む、というのは可能でしょうか?

回答の条件
  • 1人2回まで
  • 登録:
  • 終了:2008/11/24 16:55:28
※ 有料アンケート・ポイント付き質問機能は2023年2月28日に終了しました。

ベストアンサー

id:lets_skeptic No.1

回答回数13ベストアンサー獲得回数2

ポイント27pt

javaサーブレットに限らず、プログラムを用いれば原理的には読み込むことが可能です。


ただ、ブログのサービスによって、ページ表示用のHTML構造は異なりますからブログサービス毎に、HTML構文を解析して必要な部分を切り出すような処理が必要になるかと思います。

また、HTMLの構文解析後に、次のページ(ある限り)を取得する動作を繰り返すことも必要かと思います。


実装の方法は複数あると思いますが、最も単純に考えると、大体以下のような流れでプログラムしていくことになるかと思います。

  1. URLを開く
  2. 構文解析
  3. 本文の切り出し(1ページ分)
  4. 次ページリンクがあるかの判定
  5. 有れば次ページを開く
  6. 2に戻る

2~4辺りはブログサービス毎に別の構文解析を行う必要が出てくるということになります。

id:rapuntuleru

回答ありがとうございます。

なるほど、ブログだから楽な方法があるわけではなく、ページとしてhtmlを読み込ませて、切り出すことになるのですね。

これは、もう一つ質問になってしまうのですが(別の記事として質問したほうがいいのかもしれませんが)、そのようなプログラムを書くのに、参考になる書籍やページや検索のためのキーワードのようなものはあるでしょうか?

そういった処理は実装したことがないので、まったくわからないので…。

2008/11/20 17:26:38

その他の回答2件)

id:lets_skeptic No.1

回答回数13ベストアンサー獲得回数2ここでベストアンサー

ポイント27pt

javaサーブレットに限らず、プログラムを用いれば原理的には読み込むことが可能です。


ただ、ブログのサービスによって、ページ表示用のHTML構造は異なりますからブログサービス毎に、HTML構文を解析して必要な部分を切り出すような処理が必要になるかと思います。

また、HTMLの構文解析後に、次のページ(ある限り)を取得する動作を繰り返すことも必要かと思います。


実装の方法は複数あると思いますが、最も単純に考えると、大体以下のような流れでプログラムしていくことになるかと思います。

  1. URLを開く
  2. 構文解析
  3. 本文の切り出し(1ページ分)
  4. 次ページリンクがあるかの判定
  5. 有れば次ページを開く
  6. 2に戻る

2~4辺りはブログサービス毎に別の構文解析を行う必要が出てくるということになります。

id:rapuntuleru

回答ありがとうございます。

なるほど、ブログだから楽な方法があるわけではなく、ページとしてhtmlを読み込ませて、切り出すことになるのですね。

これは、もう一つ質問になってしまうのですが(別の記事として質問したほうがいいのかもしれませんが)、そのようなプログラムを書くのに、参考になる書籍やページや検索のためのキーワードのようなものはあるでしょうか?

そういった処理は実装したことがないので、まったくわからないので…。

2008/11/20 17:26:38
id:goodvn No.2

回答回数228ベストアンサー獲得回数18

ポイント27pt

他のサイトのデータを丸ごと持ってくるのは,そのサイトに対し,多大な負荷を与える可能性があるので,事前に断ったほうがいいかもしれません.

wget などのソフトでは,サイトを丸ごとコピーできるので,そのデータを解析すれば,全ての記事を取得できます.

サイトのサーバ,ネットワークの性能,記事数などによってかわりますが,全てのデータを取るのに,数分~数時間時には,数日掛かる場合もあります.

サイトのデータを丸ごと取ってくることを,クローリング,ソフトをクローラーと呼ぶこともあります.

実装しなくても,すでにいくつかのクローラー(上記の wget も含め)があるので,そういったプログラムを組み合わせればいいと思います.

目的としては,(SEO関係の) spam 行為が思い浮かぶので,クローリングは慎重になったほうがいいかもしれません.

id:newta No.3

回答回数68ベストアンサー獲得回数7

ポイント26pt

RSSはデータとしてきれいにまとめてもらったのを見てるだけなので簡単ですが、

すべてとなると、データとしては汚い状態のものを

自分できれいにして、更にデータを抽出することになるので

たぶんかなり泥臭い作業になると思います。

HTMLデータを取ってくるのは簡単で、HttpConnectionクラスなどで

URLをセットして取得すれば文字列で返ってきます。

それをひたすらきれいにして解析するだけです。

HTMLはかなりゆるゆるで、結構間違っててもブラウザで表示出来ちゃったりするので

きれいなデータの状態にするのが大変かもしれませんよ。

技術的にはそんなに厳しい感じではないと思います。

かなりめんどくさいですが。

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

回答リクエストを送信したユーザーはいません