クリスマス終わりましたね! しらんけど。
ということで、年末なんで、メンテナンスもかねて、blogの整理をしているんですけれども、使っているサービスが、かつてBoxerBLOGだったTypePad.jpでして、これでblogを50こぐらい作っている状況なのですが、これらのblogで、投稿するときに設定できるカテゴリーを増やすとき、今までは50回blogのコントロールパネルでしこしこ入力していたわけですけれども、単純労働過ぎるので、スクリプトを作りました。
TypePad.jpは、その名の通り、TypePad ASPで構築されていますので、DBを直接いじれません。従って、人間が実際行うやり方をまねる方法、つまりロボットを作ることになります。
以下のスクリプトは、WWW::Mechanizeを使ったTypePad系blogの複数blogカテゴリ追加スクリプトとなります。
クリスマス前に使ったので大丈夫だと思いますが、こっちでは保証しませんのであしからず。
FileName: add_category.pl
#!/usr/bin/perl
use strict;
use warnings;
use utf8;
use Encode;
use WWW::Mechanize;
my $login_id = 'login_id';
my $password = 'password';
my $add_category_word = '便座カバー';
my $base_url = 'https://www.typepad.jp/t/app'; # TypePad.jp
# my $base_url = 'https://app.cocolog-nifty.com/t/app'; # ココログ
my $categores_url = "$base_url/weblog/configure?__mode=categories&blog_id=";
my $bloglist = [
20721, # ブログ1。ログイン後のblog一覧のソースから取得しておこう
26969, # ブログ2
21919, # ブログ3
];
# 開始
my $mech = WWW::Mechanize->new(); # Mechオブジェクト用意
$mech->agent_alias( 'Windows IE 6' ); # IE6になりきる
# ログイン
$mech->get( $base_url ); # ログインする:認証ページへ
$mech->form_number( 1 ); # 認証ページの最初のフォームを選択
$mech->set_visible( $login_id, $password ); # ログイン・パスワード入力
$mech->submit(); # 送信
# カテゴリー追加処理
foreach my $blog_id (@$bloglist) { # $blog_idを$bloglistから1つずつ入力
my $url = "$categores_url$blog_id"; # 各blogのカテゴリーメンテページURL生成
print "$url\n";
$mech->get($url); # カテゴリーメンテページに移動
$mech->form_number(1); # カテゴリーメンテページの最初のフォームを選択
$mech->field( 'category-new' # 新しいカテゴリー名を
=> encode('utf8', $add_category_word),); # 入力
$mech->submit(); # 送信
}
exit;
__END__
これ必要な人がどんだけいるかわかりませんけれども、お使いくださいませ。



Leave a comment