稲沢市よりお届けしてます。

Perlをはじめとしたプログラミング周りのあれこれについて。Perl、最近書いてないなぁ。

Perl版 WWW::Mechanizeモジュールを使ってみるー。

ブラウジングやWEB関連の作業を自動化したいなーと思って、Perlでどうやったらできるだろうと調べていると必ず行き着くのが
WWW::Mechanize。


メックなんて呼ばれてるこのモジュールは、筋金入りのお手軽ツールらしい。

ということで、早速ドキュメントを読みながら使ってみました。

#!/usr/bin/perl/ -w
#
#WWW::Mechanize_test
#CPANドキュメントを参考にしながらWWW::Mechanizeで遊んでみた

use strict;
use WWW::Mechanize;
use encoding qw(shiftjis);


my $url = 'http://headlines.yahoo.co.jp/hl';
my $cate_label = 'テクノロジー';
my $cate_label2 = 'テクノロジー総合';


# WWW::Mechanizeクラスのnewメソッドをもつmechオブジェクトを生成
my $mech = WWW::Mechanize->new();

#Yahooニュースのヘッドラインへアクセスする
$mech->get( $url );

# ステータスのチェック
print "リクエストは成功しているか?(1/0)\n" . $mech->success() ."\n";
print "リクエストのHTTP statusは?\n" . $mech->status() ."\n";
print "現在のページのURIは?\n" . $mech->uri() ."\n";
print "現在のページのTitleは?\n" . $mech->title() ."\n\n";

#Yahooニュースのテクノロジーへアクセスする
$mech->follow_link( text_regex => qr/$cate_label/ );

# ステータスのチェック
print "リクエストは成功しているか?(1/0)\n" . $mech->success() ."\n";
print "リクエストのHTTP statusは?\n" . $mech->status() ."\n";
print "現在のページのURIは?\n" . $mech->uri() ."\n";
print "現在のページのTitleは?\n" . $mech->title() ."\n\n";

#Yahooニュースのテクノロジー総合へアクセスする
$mech->follow_link( text_regex => qr/$cate_label2/ );

# ステータスのチェック
print "リクエストは成功しているか?(1/0)\n" . $mech->success() ."\n";
print "リクエストのHTTP statusは?\n" . $mech->status() ."\n";
print "現在のページのURIは?\n" . $mech->uri() ."\n";
print "現在のページのTitleは?\n" . $mech->title() ."\n\n";

実行すると、こんな感じ↓

完全に動作確認用のスクリプトなので、なんちゃ役に立ってません。

が、

リンクのテキスト部分を辿って、
目的のページに移動できるあたりが、

か・な・り

便利だーーーー!!