テキスト中のキーワードをリンクする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
- Google News (グーグルニュース)日本版 (2 PV)
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (2 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (1 PV)
- [Perl]UTF-8でエンコードされた英数字の全角半角変換を行うコード (1 PV)
- 2chまとめサイト - 痛いニュース(ノ∀`) (1 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (1 PV)
- 裁量トレードを半自動化する無料のMT5向け裁量トレード支援ツール(EA)「PositionKeeper MT5」 #FX (1 PV)
今月のアクセスランキング TOP 10
- SQLのSELECT文で先頭から上位(TOP)10件のレコードを取得する方法(SQL Server、Oracle、MySQL、PostgreSQL) (1344 PV)
- 安全性重視の完全無料ナンピンマーチンEA「Million Dollar(ミリオンダラー)」 #FX #ゴールド #ビットコイン (216 PV)
- Google Finance(グーグルファイナンス)- リアルタイム株価情報、金融ニュース、日本株 (194 PV)
- MT4向けオープンソースナンピンマーチンEA「Automaton」 (126 PV)
- 自作のMT4向け無料EA(口座縛り無し、ブローカー縛り無し、使用期限無し)とゴゴジャン出品中の有料EAの一覧 #MT4 (115 PV)
- MT4向け1ポジアノマリーEA「DAY TRADING」オープンソースライセンス(GPL3)で公開 #ドル円 (112 PV)
- [FX]高値更新・安値更新でエントリー、MT4向け無料スキャルピングEA「1Scalper」#システムトレード (103 PV)
- 完全無料のMT5用ナンピンEA「Nanpin K(ナンピンケイ) MT5」 (103 PV)
- 完全無料のMT4向けナンピンEA「Nanpin K(ナンピンケイ)」 (91 PV)
- SQLiteのSELECT文で上位 (TOP) n件のデータを取得する (83 PV)
アクセス統計
ディレクトリ
関連サイト