読書記録ChangeLog / 2004-09-18

日記内を検索  前の日 / 次の日 / 最新 / ランダム RSS

2004-09-18 Sat

CPAN 初級

http://www.fuji.sakura.ne.jp/~yada/talk2000/perl.shtml

# perl -MCPAN -e shell

Perlモジュールのインストール方法。
↓ActivePerlの場合はppm.batで入れましょう。

Referrer (Inside): [2004-09-18-2]

Perlモジュール/インストール(PPM) - ActivePerl+PPMによるモジュールインストール方法。

http://digit.que.ne.jp/work/index.cgi?Perl%a5%e2%a5%b8%a5%e5%a1%bc%a5%eb%2f%a5%a4%a5%f3%a5%b9%a5%c8%a1%bc%a5%eb%28PPM%29

Referrer (Inside): [2004-09-18-2]

はてなアンテナをスッキリ!続き

[2004-09-18-2]の手順で(2)のステップを省略して実行するとアンテナ内のダ
ブったエントリが自然に除去できるようです。

Referrer (Inside): [2004-09-29-9]

攻殻機動隊 STAND ALONE COMPLEX まとめサイト

http://kokaku-sac.hp.infoseek.co.jp/

虫ケラの様に愛してくれてありがとう

http://www.k2.dion.ne.jp/~mushi/index.html

Referrer (Inside): [2005-11-20-11]

はてなアンテナをスッキリ!

更新されなくなったサイトを中心に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

uzoyoto@dkiroku.com

これまでの訪問者は 人です。