さくらVPSでとりあえずWeb::Queryが使えるようにしてみる
PerlでjQuery風のセレクタを使ってスクレイピングが出来るモジュール、Web::Queryを使いたいのでまずは使えるようにしてみる。
インストール。
$ sudo yum -y install cpan (中略) Installed: perl-CPAN.x86_64 0:1.9402-131.el6_4 Dependency Installed: perl-Digest-SHA.x86_64 1:5.47-131.el6_4 perl-ExtUtils-MakeMaker.x86_64 0:6.55-131.el6_4 perl-ExtUtils-ParseXS.x86_64 1:2.2003.0-131.el6_4 perl-Test-Harness.x86_64 0:3.17-131.el6_4 perl-devel.x86_64 4:5.10.1-131.el6_4 Complete! $ sudo cpan cpan> install CPAN cpan> reload cpan $ sudo cpan Module::Build $ sudo cpan Web::Query
テスト。
自動車のメーカー名一覧をgoo-netから取得するよー!
$ cat > ~/sample.pl use strict; use warnings; use Web::Query; binmode(STDOUT, ":utf8"); wq('http://www.goo-net.com/catalog/') ->find('div.box_searchUsedCar ul.line li a') ->each(sub{ $_[1]->each(sub{ my(undef, $wq) = @_; my $name_j = $wq->text(); my $name = $wq->attr('href'); $name =~s|^/catalog/(\w+)/index.html$|$1|; print qq|$name ($name_j)\n|; }) }); exit;
実行してみる
$ perl ~/sample.pl LEXUS (レクサス) TOYOTA (トヨタ) NISSAN (日産) HONDA (ホンダ) MAZDA (マツダ) EUNOS (ユーノス) FORD_JAPAN (日本フォード) MITSUBISHI (三菱) SUBARU (スバル) DAIHATSU (ダイハツ) SUZUKI (スズキ) ISUZU (いすゞ) MITSUOKA (ミツオカ) RENAULT (ルノー) PEUGEOT (プジョー) CITROEN (シトロエン) VENTURI (ヴェンチュリー) MERCEDES_BENZ (メルセデス・ベンツ) AMG (AMG) MAYBACH (マイバッハ) MCC_SMART (スマート) BMW (BMW) BMW_ALPINA (BMWアルピナ) AUDI (アウディ) VOLKSWAGEN (フォルクスワーゲン) MINI (MINI) OPEL (オペル) PORSCHE (ポルシェ) EUROPE_FORD (ヨーロッパフォード) YES (イエス!) VOLVO (ボルボ) SAAB (サーブ) ROLLSROYCE (ロールスロイス) BENTLEY (ベントレー) JAGUAR (ジャガー) DAIMLER (デイムラー) LAND_ROVER (ランドローバー) MG (MG) ROVER (ローバー) LOTUS (ロータス) ASTON_MARTIN (アストンマーティン) MORGAN (モーガン) TVR (TVR) FIAT (フィアット) ABARTH (アバルト) FERRARI (フェラーリ) LANCIA (ランチア) ALFA_ROMEO (アルファロメオ) MASERATI (マセラティ) LAMBORGHINI (ランボルギーニ) AUTOBIANCHI (アウトビアンキ)