この前ちらっと「なんか本読んでたら〜」と書いたけど、その本というのは
Spidering Hacks。
LWP::UserAgent とか、WWW::Mechanize とか便利そうな Perl モジュールが色々紹介されてるけど、WWW::Mechanize は日本語の処理に問題があるとか。
そんなわけで、日本語版には HACK101 として日本語版のモジュールである WWW::MechanizeJHack が収録されてます。
(これは上記のサイトから落とせます)
で、インストール方法は
(1) ppm で WWW::Mechanize 0.72 のインストール
(2)
http://search.cpan.org/src/PETDANCE/WWW-Mechanize-1.02/lib/WWW/Mechanize.pm を落として、先ほどインストールしたファイルを上書き
(3) さらに HTML::FormJHack.pm と WWW::Mechanize をコピー
だそうで、ちょっぴり面倒そうです。
私は少なくとも 3 台のマシンに対してこの操作を行う予定がある(しかもそのうち一台はインターネットに接続できない)ので、簡単にインストールできるように準備しておきました。
まずは ActiveState 以外からのパッケージのインストール方法を調べてみた。
以前 Net::SSLeay をインストールしたときに .ppd ファイルを指定してインストールしたけど、そのへんのやり方が
MS-WindowsでPerlのページ
の「オフラインモードでのPPMを使ったモジュールインストール」という項に載ってて。
今回の場合は
http://ppm.activestate.com/PPMPackages/zips/8xx-builds-only/Windows/WWW-Mechanize-0.72.zip をダウンロードすればよさげ。
で、zip を解凍すると以下の構成になっているわけで。
WWW-Mechanize-0.72.zip
│ README
│ WWW-Mechanize.ppd
│
└─MSWin32-x86-multi-thread-5.8
WWW-Mechanize-0.72.tar.gz
WWW-Mechanize.ppd に VERSION="0,72,0,0" なんて表記があるので VERSION="1,2,0,0" に書き換え。
次に WWW-Mechanize-0.72.tar.gz を解凍〜。
で、
http://search.cpan.org/src/PETDANCE/WWW-Mechanize-1.02/lib/WWW 配下のファイルをダウンロードして上書き&Cookbook.pod を一応追加。(
青色部分)
# 実際に必要なのは Mechanize.pm だけ。その他は Pod があったり無かったりするだけなので。
さらに、MechanizeJHack とかを追加。(
赤色部分)
WWW-Mechanize-0.72.tar.gz
│
└─blib
├─arch
│ └─auto
│ └─WWW
│ └─Mechanize
│ .exists
│
├─html
│ ├─bin
│ │ mech-dump.html
│ │
│ └─site
│ └─lib
│ └─WWW
│ │ Mechanize.html
│ │
│ └─Mechanize
│ Examples.html
│ FAQ.html
│ Link.html
│
├─lib
│ ├─auto
│ │ └─WWW
│ │ └─Mechanize
│ │ .exists
│ ├─HTML
│ │ FormJHack.pm
│ │
│ └─WWW
│ │ .exists
│ │ Mechanize.pm
│ │ MechanizeJHack.pm
│ │
│ └─Mechanize
│ Cookbook.pod
│ Examples.pod
│ FAQ.pod
│ Link.pm
│
└─script
.exists
mech-dump
mech-dump.bat
こんな感じ。
あとはこれを WWW-Mechanize-0.72.tar.gz と同じように tar.gz で固めて WWW-Mechanize-1.02.tar.gz なんてファイル名で保存。
で、最後にインストール作業。
>ppm uninstall WWW-Mechanize (必要であれば)
>ppm install .\WWW-Mechanize-1.02\WWW-Mechanize.ppd
こんな感じで完了。
>perl -MWWW::Mechanize -e "print WWW::Mechanize->VERSION"
1.02
まぁよさげ・・・かな?
WWW::Mechanize 経由で HTTPS 使おうとすると Crypt::SSLeay が必要らしい。(Net::SSLeay じゃなくて)
適当にググると
ppm install http://theoryx5.uwinnipeg.ca/ppms/Crypt-SSLeay.ppd
でいけるんだとか。
・・・いけたっぽい。
その後さらに Crypt::SSLeay をオフラインインストールするためにちまちまファイルを準備しました。眠い。