プロが教える店舗&オフィスのセキュリティ対策術

いつもお世話になっています。

ブログのHTMLから本文を抽出したいと思っています。

ヤプログを例にとると、ヤプログのHTMLは以下のようになっています。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">


<!-- entry -->

 <td class="entry_title">
 <h3>タイトル<span class="date">2005年10月29日(土)</span></h3>

<td class="entry_text">

<div class="entry_layer"><div style="text-align: center;">
<img src="/cafe_life/img/25/cafe67.jpg" border="0">
</div>

<br>
今日はとてもいい天気だったので、<br>
渋谷に買い物に行きました。<br>

<br>
新しいiMacが欲しいなぁ~<br>

<br>
</div>


<!-- entry -->


</html>

そこで、本文を抽出するのに、
<td class="entry_text"> から<!-- entry -->までをHTMLから抽出し、
さらにそれに対してタグを除去するようにしてブログの本文の

「今日はとてもいい天気だったので、
 渋谷に買い物に行きました。
 …
 新しいiMacが欲しいなぁ~」

を抽出させたいと思っています。

このようにするにはプログラムをどのように作成すればよいでしょうか?

よろしくお願いします。

A 回答 (4件)

回答ではないのですが、


私知っているヤプログのサイトは、そのような構成になっていませんでした。
??
    • good
    • 0
この回答へのお礼

申し訳ありません。
私の確認不足でした。

確認したところ、はっきりとは言えないのですが、
ヤプログもリニューアル前と後のブログでは、
HTMLの構造が変わっているようです。

質問で記述したのは、私のヤプログのブログの記事のHTMLを参照して書いたのですが、
ヤプログのトップhttp://www.yaplog.jp/
で紹介しているPRIDEレフェリー島田さんのブログや、
高橋千佳子さんのブログなど比較的新しいブログのHTMLでは、
<div class="entry">からブログのエントリーの記述が始まり、
<div class="txt">からブログの本文の記述が始まり、
<!-- FeedMe -->までがブログのエントリーという記述になっていました。

ただ、私のブログや知り合いのブログなど比較的古くから始めているブログは質問のようなHTMLの構造になっていました。

もしよろしければ、上記のどちらかに対応してブログの本文を抽出する方法を教えていただけますか?

よろしくお願いします。

お礼日時:2005/11/03 15:50

Socket or HttpConnectionでHTTP通信すればHTMLのソースは取得できます。



あとは、HTMLのタグを取り除く&改行を追加する、で
できますよね?

それとも文字列操作ができないんでしょうか?
    • good
    • 0
この回答へのお礼

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

指定した範囲だけのHTMLのソースを抜き出して、
それに対してタグを取り除くということはできるのでしょうか?

また、どのようにプログラムを組めばいいのでしょうか?

よろしくお願いします。

お礼日時:2005/11/06 00:18

HTMLはXMLと違って必ず開始タグ+終タグの関係になっていないので、


ちょっと面倒くさいですが、本文がどこ(どのタグ)から始まり
どこで終わりかが分かっていればString#indexOf、String#substringで
目的の文字列(タグつき本文)が取得できます。

次に余計なタグ(div)を削除し、改行タグ(br)を改行コード(\r\n)に
変換すれば読める文字列になるかと思うのですが。
(もしかしたら文字コードの変換が必要になるかもしれませんが)

変換はString#replaceかString#replaceAllを使ってください。jdkのバージョンによっては後者は使えませんが。

参考URL:http://java.sun.com/j2se/1.4.2/docs/api/index.html
    • good
    • 0
この回答へのお礼

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

ご回答を参考にして頑張ってみます。

お礼日時:2005/11/06 18:31

 正規表現でパターンマッチングすれば不可能ではないでしょう。

どんなコードを書けばいいかは、ご自身でもう少しお考えになりとりあえず叩き台を出して頂かないと、有益なアドバイスも出てこないのではないでしょうか?
 掲示板はボタンを押しさえすれば無料でソースコードを吐き出してくれる自動販売機ではありません。

 しかし、HTML文書に含まれるデータを処理するってのは、私の印象ではパターンマッチングとしてはかなり上級の課題のような気がします(要素と属性の間に改行とか入ってたらどうすんだとか、属性値が"で囲まれていない場合はどうすんだとか、欲しいテキストの一部が<b>とかで囲まれてたらどうすんだとか。。。)。
おそらく一般的・半永久的に使えるパターンを作るには、HTMLのDTDを精読する必要があるでしょう。
 それに、コメント行をあてにしてマッチングするというのも何か気が進まないですねえ。他に方法は無いんでしょうか?
 xsltが使えるXHTMLの場合なら少しはやる気がしますが。。。
 

 
    • good
    • 0
この回答へのお礼

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

確かにこちらを頼りすぎて、私自身に勉強不足・努力不足のところがありました。

今後は、試行錯誤の上、どうしても分からないときのみ、
こちらを利用したいと思います。

お礼日時:2005/11/06 18:37

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!