テキスト中のキーワードをリンクする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 サンプル プログラム キーワード リンク 

ジャパンのホームページ

追記

サンプルスクリプトのソース
サンプルスクリプトのソースを添付ファイルに登録しています。
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. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (5 PV)
  2. 2NN 2ちゃんねるニュース速報+ナビ (3 PV)
  3. Google Web Starter Kit とは (2 PV)
  4. StartPage(スタートページ) - 匿名検索エンジン (1 PV)
  5. NetaCha(ネタ+非同期チャット)というサイトを作りました (1 PV)
  6. Google Wave (1 PV)
  7. Google、中国での検閲を停止 (1 PV)
  8. Googleが裁判に負けてYouTubeのユーザー情報がViacom(バイアコム)へ (1 PV)
  9. モバイルフレンドリーテスト (1 PV)
  10. ソフトウェアテストについての本 (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (44 PV)
  2. 2NN 2ちゃんねるニュース速報+ナビ (37 PV)
  3. 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (21 PV)
  4. 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (13 PV)
  5. FC2まとめ (13 PV)
  6. Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (13 PV)
  7. Google News (グーグルニュース)日本版 (12 PV)
  8. 爆益を狙うハイリスクハイリターンのナンピンマーチンEA「Hyper Dollar MT5」 (10 PV)
  9. Google Maps(グーグルマップ)日本版 - 地図検索、ルート検索 (10 PV)
  10. MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (10 PV)

アクセス統計

ディレクトリ

関連サイト