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

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

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

●質問者: rapuntuleru
●カテゴリ:コンピュータ ウェブ制作
✍キーワード:Java RSS エントリー サーブレット タイトル
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● lets_skeptic
●27ポイント ベストアンサー

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


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

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


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

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

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

◎質問者からの返答

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

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

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

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


2 ● goodvn
●27ポイント

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

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

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

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

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

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


3 ● newta
●26ポイント

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

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

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

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

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

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

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

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

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

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

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

関連質問


●質問をもっと探す●



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