トップ>Perl&CGI>基本編目次>INCMプラグインで覚えるPerl講座11

INCMプラグインで覚えるPerl講座

第11回 記事本文の取得と本文の一行目を記事タイトルにする

まずは前回の宿題からです。 メールアドレスが記入された場合について。 ドムーパさんの所でテストさせて頂きました。 その結果、特に問題なく投稿者名が取得できることが確認できました。

記事本文の取得

それではいよいよ本文の取得に入りましょう。 HTMLソース上ではFONTタグに囲まれていますね。 通常なら素直にFONTタグで囲まれてる部分を抽出でいいんですが、 投稿者名の取得部分

s/<div[^>]+>([^<]+).*?:<font[^>]+>//;

として、マッチ部分を削除してしまっています。 というわけでFONTの開始タグがないんです。 考え方を変えて、上で削除されてるなら残ってるのは何でしょう?

本文</font> 06/28(Fri)00:00[50]</div>

という感じで「$_」に残っています。 本文より後ろを切り捨てれば良さそうですね。 62行目を修正します。

 $_=$1;

という部分は削除して下さい。

/<BLOCKQUOTE>([^\xff]*?)<\/P>/;

という部分を

s/^(.*)<\/font>.*$/$1/;

に書き換えて下さい。

$_」内の文字列の先頭から調べて</font>が出て来るまでを $1に取得して、</font>以降は最後まで削除します。 これで本文は取得できました。

次にタイトルというのは「ちびぼーど」には存在しません。 そこで本文の一行目をタイトルにしたいと思います。 55行目のタイトル抽出部分を

  $head = "";

のみにして下さい。

63行目と65行目の間に

	$T = $_;
	$T =~ s/(、|。| |\.|.|?|\?|\,|\!|!|♪)[^\xff]*$//;
	$head .= "T:$T\n";

を挿入します。 59・60行目をその下に移動します。 やってることは区切りになる文字以降を削除してるだけです。

今回はここまでとします。 次回は書き込み出来るようにしたいと思います。

Prev : Next


トップ>Perl&CGI>基本編目次>INCMプラグインで覚えるPerl講座11

©Copyright 2002 GETWILD'74 All Rights Reserved
E-Mail:getwild@mail.wind.ne.jp