結果だけでなく過程も見てください

日々の奮闘を綴る日記です。

perlでWebクライアント (1)

特定のwebサーバから定期的に情報を取得したいときがあります。

対象となるページがプレーンなページであれば良いのですが、
実際には認証等、色々な壁があるので、これを勉強がてら
1つ1つ解き明かして行きたいと思います。

perlのLWP(WWWアクセス用ライブラリモジュール)を使用します。

まずはIDフォームのnameが「id」、パスワードフォームのnameが「pass」として
以下のようなコードを書いてみました。

#!/usr/bin/perl

use LWP::UserAgent;
use HTTP::Request;
use HTTP::Request::Common qw(POST);

my $url = 'https://www.sample.com/login';
my %formdata = ('type' => 'login','id' => 'myid', 'pass' => 'mypass');
my $request = POST($url,[%formdata]);

my $ua = LWP::UserAgent->new;
$ua->agent('Mozilla/5.0');

my $res = $ua->request($request);
:

肝心のログインを行う際のログインボタンがjavascriptになっており
どのようなリクエストを送ればいいかわかりませんでした…。

perlでどのようにjavascriptの関数をコールするかが肝になると
思いますが、時間がなくなってきたのでまた明日頑張ります。

まとめ。

  • LWPを使用すると簡単にwebアクセスが実現可能。
  • フォームデータは、name属性をキーに、入力する値をデータにしたハッシュにする
  • POST(URL,上記ハッシュ)でPOSTリクエストを作成できる。
  • javascriptの関数等をどうコールするかが課題
プライバシーポリシー お問い合わせ