テキスト中のキーワードをリンクする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. [将棋]竜王戦第三局は居飛車振り飛車の対抗型で丸山忠久九段が勝利 #竜王戦 (5 PV)
  2. MySQL [書籍] (4 PV)
  3. 「CASH(キャッシュ)」アイテム(ブランド品やガジェット)の写真を撮れば審査なしで現金化できるサービス (3 PV)
  4. 加計学園(かけがくえん)の獣医学部新設についての「総理の意向」文書は本物と週刊文春がスクープ予告 (3 PV)
  5. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2 PV)
  6. フリーソフトウェア/オープンソースのタブー (2 PV)
  7. FC2動画 - 映画、ドラマ、アニメなどが無料で見られる動画共有サイト (1 PV)
  8. グーグルの新しいブラウザ「Google Chrome」 (1 PV)
  9. [食べ物]七草粥(ななくさがゆ) (1 PV)
  10. クリック単価(キーワードの値段) (1 PV)

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

  1. SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (3626 PV)
  2. グーグルニュース日本語版が見れない (3312 PV)
  3. Google News (グーグルニュース)日本版 (1161 PV)
  4. [将棋]将棋実況ユーチューバーのクロノさんが朝日新聞のクレームで棋譜中継を配信中止 (334 PV)
  5. 「CASH(キャッシュ)」アイテム(ブランド品やガジェット)の写真を撮れば審査なしで現金化できるサービス (226 PV)
  6. ウェブページを1回だけリロード(再表示)する方法 (198 PV)
  7. Google(グーグル) 日本版 (174 PV)
  8. [C言語]UTF-8でエンコードされた文字列の部分文字列を取り出すコード (156 PV)
  9. 将棋ウォーズスーパープレミアムプラン販売開始、香川愛生女流三段のボイスが選択可能 #将棋 (133 PV)
  10. [将棋]竜王戦第三局は居飛車振り飛車の対抗型で丸山忠久九段が勝利 #竜王戦 (117 PV)

アクセス統計

ディレクトリ

関連サイト