テキスト中のキーワードをリンクするPerlサンプルスクリプト

任意のキーワードリストに含まれるテキスト中のキーワードに、特定のページ(URL)にリンクするPerlのサンプルスクリプトを作ってみました。ブログソフトとか掲示板ソフトを開発する際に役に立つと思います。文字エンコードがUTF-8、EUCではOKでしたが、SJISではうまく動きませんでした。

以下、サンプルスクリプトの一部です。
my @wordlist = ('はてな', 'ブログ', 'アルファブロガー');
foreach my $word (@wordlist) {
my $encword = $word;
$encword =~ s/(\W)/'%'.unpack('H2', $1)/eg; # uri encode
my $link = "<a href=\"serach.cgi?querystr=$encword\">$word</a>";
$text =~ s/$word/$link/g;
# アンカーテキストのキーワードは元に戻す
my $pattern = "(<a href.+)<a href.+$word</a>(.+/a>)";
$text =~ s/$pattern/$1$word$2/g;
}
print $text;

リンクの処理のところが微妙ですが、適当に修正して使っていただければ幸いです。

はてなダイアリーのキーワードにリンクするためのサンプルもあるようです。動かしてみたわけでないのでハッキリとはいえませんが、ソースを見る限りテキスト内でアンカータグでリンクを行っている場合は、まずいような気もします。

はてなダイアリーキーワード自動リンクAPI - はてなダイアリー日記
なお、上記ファイルは現状で300KBほどありますので、アプリケーション側で一定時間キャッシュして頂くなどの措置をお願いできればと思います。
テキスト一つ処理するだけで300KBですか、はてな側も大変かも知れませんが呼び出す方も大変ですね。
[1177] Posted by kagahiro at 2008/02/24 23:14:33
オープン | 1 point | Link (2) | Trackback (1) | Comment (0)

キーワード
perl プログラミング オープンソース CGI サンプル プログラム キーワード リンク 

kagahiroのホームページ

追記

サンプルスクリプトのソース
サンプルスクリプトのソースを添付ファイルに登録しています。
Posted by kagahiro at 2008/02/24 23:22:00

添付ファイル

1177_1_sample1.pl 1069 byte 2008/02/24 23:20:14 kagahiro

テキスト中のキーワードをリンクするPerlサンプルスクリプト 関連リンク

Perl(パール)
perl(パール)とは、Larry Wall氏によって開発された、テキストの検索や抽出やレポート作成に適した、C言語...
URLを元にページのタイトルを取得するPerlのサンプルスクリプト
URLから元ページのタイトルを取得するためのperlサンプルスクリプトです。処理手順は以下の通りです。1.ペ...

テキスト中のキーワードをリンクするPerlサンプルスクリプト トラックバック

トラックバックURL :

Linked from IT土方日記 : はてなを潰すためにはどうすればいいのか at 2008/02/25 02:10:58
この方がおっしゃっているように、はてなの強みはSEOにあります。それならば、はてなを潰すにはその強みを無効化、弱体化すればよいのではないでしょうか。 はてなはなぜ潰れないのか? 「はてなはSEOが強いので、検...

テキスト中のキーワードをリンクするPerlサンプルスクリプトへのコメント


詳細の入力フィールドを表示する

おすすめ  (チェックしてコメントすると最新情報に掲載)
コメント :

< 前の投稿      次の投稿 >

アクセスランキング

今日のアクセスランキング TOP 10

  1. フリーソフトウェア/オープンソースのタブー (4 PV)
  2. [食べ物]七草粥(ななくさがゆ) (3 PV)
  3. [将棋]竜王戦第三局は居飛車振り飛車の対抗型で丸山忠久九段が勝利 #竜王戦 (3 PV)
  4. [将棋]NHKトーナメントで佐藤康光九段がなめプ角頭歩戦法で佐藤天彦名人を撃破 (2 PV)
  5. [C言語]UTF-8でエンコードされた文字列の部分文字列を取り出すコード (2 PV)
  6. Sony、ハイエンドEマウントミラーレスカメラ「α9」(model ILCE-9)を発表 (2 PV)
  7. FC2動画やYouTubeなどから無料動画(映画やドラマ、アニメ、音楽など)を探す方法 (2 PV)
  8. Dailymotion(デイリーモーション) - 動画共有サイト (2 PV)
  9. 「Mastodon-iOS」マルチインスタンス対応のiPhone用Mastodon(マストドン)アプリ (1 PV)
  10. 「マストドン(Mastodon)」ブームでカドカワの株価が上昇、さくらインターネットの株価は上がらず (1 PV)

今月のアクセスランキング TOP 10

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (3982 PV)
  2. [将棋]中学生プロ棋士の藤井聡太四段がNHK杯1回戦で千田翔太六段に勝ちプロデビューから公式戦13連勝 (353 PV)
  3. ウェブページを1回だけリロード(再表示)する方法 (269 PV)
  4. 世界最大のマストドンインスタンス「mstdn.jp」の管理者nullkal(ぬるかる)さんがドワンゴに入社 (193 PV)
  5. [C言語]UTF-8でエンコードされた文字列の部分文字列を取り出すコード (191 PV)
  6. [将棋]竜王戦第三局は居飛車振り飛車の対抗型で丸山忠久九段が勝利 #竜王戦 (176 PV)
  7. フリーソフトウェア/オープンソースのタブー (172 PV)
  8. Sony、ハイエンドEマウントミラーレスカメラ「α9」(model ILCE-9)を発表 (163 PV)
  9. 将棋ウォーズスーパープレミアムプラン販売開始、香川愛生女流三段のボイスが選択可能 #将棋 (163 PV)
  10. [食べ物]七草粥(ななくさがゆ) (147 PV)

アクセス統計

ディレクトリ

関連サイト