テキスト中のキーワードをリンクするPerlサンプルスクリプト
任意のキーワードリストに含まれるテキスト中のキーワードに、特定のページ(URL)にリンクするPerlのサンプルスクリプトを作ってみました。ブログソフトとか掲示板ソフトを開発する際に役に立つと思います。文字エンコードがUTF-8、EUCではOKでしたが、SJISではうまく動きませんでした。
以下、サンプルスクリプトの一部です。
リンクの処理のところが微妙ですが、適当に修正して使っていただければ幸いです。
はてなダイアリーのキーワードにリンクするためのサンプルもあるようです。動かしてみたわけでないのでハッキリとはいえませんが、ソースを見る限りテキスト内でアンカータグでリンクを行っている場合は、まずいような気もします。
はてなダイアリーキーワード自動リンクAPI - はてなダイアリー日記
以下、サンプルスクリプトの一部です。
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)
オープン | 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
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (5 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (3 PV)
- Google Web Starter Kit とは (2 PV)
- StartPage(スタートページ) - 匿名検索エンジン (1 PV)
- NetaCha(ネタ+非同期チャット)というサイトを作りました (1 PV)
- Google Wave (1 PV)
- Google、中国での検閲を停止 (1 PV)
- Googleが裁判に負けてYouTubeのユーザー情報がViacom(バイアコム)へ (1 PV)
- モバイルフレンドリーテスト (1 PV)
- ソフトウェアテストについての本 (1 PV)
今月のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (44 PV)
- 2NN 2ちゃんねるニュース速報+ナビ (37 PV)
- 仲値トレードが簡単にできる無料EA「NAKANE3」 #MT4 (21 PV)
- 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(裁量補助EA)「PositionKeeper MT5」 #FX (13 PV)
- FC2まとめ (13 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (13 PV)
- Google News (グーグルニュース)日本版 (12 PV)
- 爆益を狙うハイリスクハイリターンのナンピンマーチンEA「Hyper Dollar MT5」 (10 PV)
- Google Maps(グーグルマップ)日本版 - 地図検索、ルート検索 (10 PV)
- MT4向け1ポジブレイクアウトEA「HEADLINE」オープンソースライセンス(GPL3)で公開 #USDJPY (10 PV)
アクセス統計
ディレクトリ
関連サイト