2018年01月05日

WWW::MechanizeとWeb::Scraperを使ってPerlによるスクレイピング

最近のスクレイピングのやり方は
use WWW::Mechanize;
でWebアクセスして
use Web::Scraper;
でタグ解析するのがしっくりくるように思えてきた。

次回は、どこかのサイトをサンプルとしてスクレイピングしたいと思う

posted by トシ at 23:19| Comment(0) | Perl

Perlでスクレイピング

最近の自分の流行としてPerlスクレイピングすることである。
スクレイピングと簡単に言うとWebから欲しい情報を取得して再度手元で加工して再利用する事である。

スクレイピング自体は違法と言うことではないが、取得した情報の使い方によっては違法となるかも知れないので
注意が必要です。具体的な法律は分かりませんが勝手に取得して有料で販売したらアウトだろうと言うことは分かりますが
あとはWebサイトの注意書きがあればそれに準じる必要がありますよね。

また、スクレイピングはパソコンから自動的にWebアクセスするので1秒間に何回もレスポンスを送るようなDoS攻撃
近いことを行ってはダメだと言うことも理解しましょう。
sleep (int(rand(3)));
このようにWaitを入れるのがマナーです
posted by トシ at 23:12| Comment(0) | Perl

2017年09月24日

nextとlastの使い分け

@last文を使うとループを抜けることができます。
Anext文を使うと次のループに進むことができます。
それに
last&nextの後ろに判断文を追記することが出来ます。
my @chars = qw/z z a b c d e f/;
forの処理.....
last if $char eq 'e';
次の処理.......

4:もし「$char」が'e'と同じならば"ループを抜ける"ので'e'以降の処理。すなわち'e','f'は処理されない
my @chars = qw/z z a b c d e f/;
forの処理.....
next if $char eq 'z';
次の処理.......

4:もし「$char」が'z'と同じならば"次のループに進む"ので'z'はスキップされる。すなわちはじめの2つの'z','z'は処理されない
また、if意外にもunlessも使えるのでコードを見やすくするためにはいろいろ使って見る
posted by トシ at 10:17| Comment(0) | Perl