2004-09-18 Sat
■ CPAN 初級
http://www.fuji.sakura.ne.jp/~yada/talk2000/perl.shtml
# perl -MCPAN -e shell
Perlモジュールのインストール方法。
↓ActivePerlの場合はppm.batで入れましょう。
■ Perlモジュール/インストール(PPM) - ActivePerl+PPMによるモジュールインストール方法。
■ はてなアンテナをスッキリ!続き
[2004-09-18-2]の手順で(2)のステップを省略して実行するとアンテナ内のダ
ブったエントリが自然に除去できるようです。
■ 虫ケラの様に愛してくれてありがとう
http://www.k2.dion.ne.jp/~mushi/index.html
■ はてなアンテナをスッキリ!
更新されなくなったサイトを中心に140→90に減らしました。
はてなアンテナお手軽メンテナンス法を以下にまとめます。
次の手順で行います。
(1)はてなアンテナのLIRS形式データテキストをダウンロード。
(2)ダウンロードしたテキストを編集。
(3)編集したテキストをはてなアンテナに反映させる。
(1)w3mやwgetなどでLIRS形式のテキストをダウンロードする
w3m "http://a.hatena.ne.jp/あなたのアカウント/source?mode=lirs&k=" | sort -nr -t , +1 > hatena.txt
↓hatena.txtはこんなかんじです。
LIRS,1095490469,1095490469,32400,,http://bm.ishinao.net/,blogmap,,http://a.hatena.ne.jp/,,
LIRS,1095488563,1095488563,32400,,http://www.watch.impress.co.jp/,impress Watch Headline,,http://a.hatena.ne.jp/,,
LIRS,1095488198,1095488198,32400,,http://news.google.co.jp/,Google News,,http://a.hatena.ne.jp/,,
(2)エディタでアンテナから削除したい行を消す。
消したいサイトを書くのではありませんので注意してください。
(3)はてなアンテナを更新する。
以下の処理にはperlのWWW::Mechanizeモジュールが必要です。
ActivePerlの場合
ppm.bat install WWW::Mechanize
でインストールできると思います。[2004-09-18-6]
UNIX系の人は普通にCPANでインストールしましょう。[2004-09-18-7]
スクリプトはアカウントとパスワードを適宜書き換えて使用してください。
またいったんアンテナを消去しますのでグループ分けは無効になってしまいます。
↓一行であらわすとこれです。それぞれの処理は(3-1)(3-2)(3-3)で説明します。
./hatena-delete-all.pl;./lirs2url.pl < hatena.txt | ./hatena-add.pl
(3-1)はてなアンテナをクリアする。
はてなアンテナをクリアするには
http://www13.ocn.ne.jp/~tokuhiro/cl/2004-09-02.html#2004-09-02-9
↓hatena-delete-all.pl
#!/usr/bin/perl
use strict;
use WWW::Mechanize;
my $account = 'あなたのアカウント';
my $password = 'あなたのパスワード';
my $start = 'http://a.hatena.ne.jp/login';
my $mech = WWW::Mechanize->new();
$mech->agent_alias('Windows IE 6');
$mech->get($start);
$mech->form_number(2);
$mech->field(key => $account);
$mech->field(password => $password);
$mech->click();
$mech->follow_link(url_regex => qr/\.\/edit/);
while (1) {
print STDERR '.';
my @forms = $mech->forms();
my $len = @forms;
if ($len<=3) {
exit;
}
$mech->form_number(3);
$mech->click();
}
(3-2)hatena.txtからURLのリストを作成する。
./lirs2url.pl < hatena.txt
↓lirs2url.pl
#!perl
use strict;
while(<STDIN>){
split ',';
print "@_[5]\n";
}
(3-3)はてなアンテナに一括登録する。
はてなアンテナに一括登録
http://www13.ocn.ne.jp/~tokuhiro/cl/2004-09-02.html#2004-09-02-5
↓hatena-add.pl
#!/usr/bin/perl
use strict;
use WWW::Mechanize;
my $account = 'あなたのアカウント';
my $password = 'あなたのパスワード';
my $start = 'http://a.hatena.ne.jp/login';
my $mech = WWW::Mechanize->new();
$mech->agent_alias('Windows IE 6');
$mech->get($start);
$mech->form_number(2);
$mech->field(key => $account);
$mech->field(password => $password);
$mech->click();
$mech->follow_link(url_regex => qr/\.\/edit/);
while (<>) {
my $url = $_;
print $url;
chomp($url);
$mech->form_number(2);
$mech->field(pageurl => $url);
$mech->click();
}
print $mech->content();
■ 本棚.orgっぽいページできたよ
ChangeLogメモからASINを抜き出して本棚.orgっぽいページを作りました。
http://dkiroku.com/asama/asin.html
以下のような雑なやり口です。
grep http://www.amazon.co.jp/exec/obidos/ASIN ChangeLog|\
perl -pe 's#.*http://www\.amazon\.co\.jp/exec/obidos/ASIN/([0-9A-Z]{10}).*#$1#g' > asin.txt
./asin.pl < asin.txt > asin.html
↓asin.pl
#!perl
use strict;
print "<html><head>\n";
print "<title>asamasi</title>\n";
print "</head>\n";
print "<body>\n";
while(<STDIN>){
print "<a href=\"http://www.amazon.co.jp/exec/obidos/ASIN/$_/dkiroku-22\">\n";
print "<img src=\"http://images-jp.amazon.com/images/P/$_.09.MZZZZZZZ.jpg\">\n";
print "</a>\n";
}
print "</body></html>\n";
2004-09 / 01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
これまでの訪問者は 人です。
