狐の王国


2007年02月01日(木) [過去の今日]

#2 wikipediaコマンド

はこべにっき#の記事 でwikipediaを引くコマンドラインツールが紹介されていた。

が、UTF-8環境でしか動かないようなので、ちびっとhack。

#!/usr/bin/perl

use strict;
use warnings;
use utf8;

use WebService::SimpleAPI::Wikipedia;
use Encode;

my $encoding = $ENV{LANG} =~ /euc-?jp/i ? 'euc-jp' : 'utf-8';
binmode STDOUT, ":encoding($encoding)";

my ($keyword) = @ARGV;
$keyword = Encode::decode($encoding, $keyword);
$keyword = ucfirst $keyword; # Wikipediaではすべて一文字目は大文字

# SimpleAPIを使ってWikipediaから情報を取得
my $wiki = WebService::SimpleAPI::Wikipedia->new();
my $res = $wiki->api({ keyword => $keyword, search => 1 })->[0]
    or die qq{Entry "$keyword" is not found in Wikipedia.\n};

# 文字コードと改行の変換
my $title = $res->title();
my $body  = $res->body();
my $url   = $res->url();
$body =~ s{<br/>}{\n}gxms; # \n\nになってたので改行1個にしちゃった。

# 出力
print "*$title ($url)\n\n";
print $body;

これで引いてみると……

$ wikipedia デーモン・ヒル
*デーモン・ヒル (http://wikipedia.simpleapi.net/ja/76166/)

『デイモン・ヒル』より : 氏名 デイモン・ヒル
年 1992 - 1999
所属チーム ブラバム, ウイリアムズ,
アロウズ, ジョーダン・グランプリ ジョーダン
出走回数 115
タイトル 1(1996)
優勝回数 22
通算獲得ポイント 360
表彰台回数 42
ポールポジション 20
ファステストラップ 19
F1デビュー戦 1992年イギリスグランプリ イギリスGP
初勝利 1993年ハンガリーグランプリ ハンガリーGP
最終勝利 1998年ベルギーグランプリ ベルギーGP
最終戦 1999年日本グランプリ (4輪) 日本GP

大成功! すばら!!

(@149)

エントリーがなかったとき文字化けしてら:

STDERRの文字コード変換が設定されてないからか。

binmode STDERR, ":encoding($encoding)";

この1行を追加すればいいだけだな。

(@230)

出力部を変更:

w3mで見るのにURIをコピーするとき、上の方だとめんどいので、URIの出力を下に移動してみた。

printf("*%s\n\n%s\nURL: %s\n\n", $res->title(), $body, $res->url());

こんな感じ。

(@247)

この記事のURI

最近の記事

以上、1 日分

タイトル一覧


カテゴリ分類
Powered by hns-2.19.8, HyperNikkiSystem Project

過去にこの日記が置いてあったcgi.misao.gr.jpは廃止されました。それによって記事へのURIが変わってしまっています。cgi.misao.gr.jpをwww.misao.gr.jpと置き換えるだけで同じ記事にアクセスできるはずです。

Sugano "狐志庵" Yoshihisa(E) @ 美紗緒ネットワーク <koshian@misao.gr.jp>
日記管理ページ