M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2006年6月20日 00:01

ニフティクリップβにクリップするPerlスクリプト

このエントリーをはてなブックマークに追加 mixiチェック

ニフティクリップβ [clip.nifty.com] に、Perl スクリプトを使って、クリップします。今のところ、インポータとかないようなので、これで作れるかも知れません。

WWW::Mechanize と、SSL 認証ページ用に Crypt::SSLeay がいります。他にも依存するモジュールあったら CPAN などで入れてください。

Fedora Core 4 を使っている人は、M.C.P.C.: Fedora Core 4でCPANからCrypt::SSLeay入れるためにyumでopenssl-devel入れてみたログ も参考にしてください。

ソースは UTF-8でどうぞ。use utf8; は付けても付けなくてもいいですけれども、あとで文字列操作するときには付けておいたほうが良かったと思うことになるので付けておいた方がいいです。Mech にぶっ込む前に UTF8 フラグ落とさないといけないみたいです。なので、現状のソースだと use utf8; は取った方がいいです。

動作環境は、Fedora Core 4 の Perl 5.8.6、昨日の時点での CPAN から取ってきた WWW::Mechanize です。エラー処理全くしていません!

#!/usr/bin/perl
use strict;
use warnings;
use WWW::Mechanize;
 
my $mech = WWW::Mechanize->new();
 
my $url = 'http://clip.nifty.com/create';
$mech->get($url);
 
 
# $url から https://clip.nifty.com/login に遷移
# ログインフォーム入力
 
$mech->submit_form (
  form_name=>'login-form',
  fields => {
    username => 'ABC01234',
    password => 'xxxxxxxx',
  },
);
 
 
# https://clip.nifty.com/loginから $url に遷移
# クリップ項目入力
 
$mech->form_name('savingForm');
$mech->set_fields (
    title    => 'M.C.P.C.: ニフティクリップβにクリップするPerlスクリプト',
    url      => 'http://blog.dtpwiki.jp/dtp/2006/06/perl_9a86.html',
    comment  => 'ニフティクリップβへPerlスクリプトでブックマークします。要WWW::Mechanize',
    tagname  => 'Perl',
  );
$mech->tick('public_flag', 'on');
$mech->submit();


(2006-06-20 5.30訂正)

誤) url => http://blog.dtpwiki.jp/dtp/2006/06/perl_9a86.html',
正) url => 'http://blog.dtpwiki.jp/dtp/2006/06/perl_9a86.html',


(2006-06-20 6.25訂正)

<del>use utf8; は付けても付けなくてもいいですけれども、あとで文字列操作するときには付けておいたほうが良かったと思うことになるので付けておいた方がいいです。</del><ins>Mech にぶっ込む前に UTF8 フラグ落とさないといけないみたいです。なので、現状のソースだと use utf8; は取った方がいいです。</ins>

投稿 大野 義貴 [Perl] | |

トラックバック(1)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/1712

前回のは、Tag が1つしか入らない(なぜなら、ニフティクリップβのクリップ登録画面の Tag 欄は、デフォルトで1個しかなくて、JavaScriptでDOM書き換えやら何やらで Tag 欄を増やしているからです。)ので、なんだかがっくしでしたが、WWW::Mechanizeでは、取得した HTML を書き換えることによって、入力欄を増やすことが出来るので、それを使ってみて、複数 Tag に対応できるようにしてみました。 あと、use utf8; にて積極的な UTF-8 ハンドリングと、Tag 芸... 続きを読む

コメントする