実用! TypePadで複数blogにカテゴリー追加

| 0 Comments | 0 TrackBacks | このエントリーをはてなブックマークに追加 このエントリーのはてなブックマーク件数

クリスマス終わりましたね! しらんけど。

ということで、年末なんで、メンテナンスもかねて、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__
これ必要な人がどんだけいるかわかりませんけれども、お使いくださいませ。

No TrackBacks

TrackBack URL: http://perl-mongers.org/MT/mt-tb.cgi/84

Leave a comment

About this Entry

This page contains a single entry by CL published on December 26, 2008 12:21 PM.

HTMLから本文を抜き出せるモジュールHTML::ExtractContent was the previous entry in this blog.

関数は第一級オブジェクト is the next entry in this blog.

Find recent content on the main index or look in the archives to find all content.

Categories

Pages

Creative Commons License
This blog is licensed under a Creative Commons License.
Powered by Movable Type 4.21-en