ablog

不器用で落着きのない技術者のメモ

Web::Scraper を使う時に YAML::Dump でデバッグする

Web::Scraper を使う時は YAML::Dump でデバッグすると便利ですね。
別に Web::Scraper を使う時に限らないですね。YAML::Dump は便利ですね。

#!/usr/bin/perl
use strict;
use warnings;
use URI;
use Web::Scraper;
use Encode;
use YAML;

my $tweets = scraper {
	process "li.status", "tweets[]" => scraper {
		process ".entry-content", body => 'TEXT';
		process ".entry-date", when => 'TEXT';
		process 'a[rel="bookmark"]', link => '@href';
	};
};

my $res = $tweets->scrape( URI->new("http://twitter.com/yoheia") );
print Encode::encode('utf8', YAML::Dump($res));


こんな具合に Dump できます。

$ ./scrape_twitter.pl 
---
tweets:
  - body: Web::Scraper の filter は便利そう。特定のテキストのみ抽出したい場合とかに。
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10934911386
    when: ' 10分前 '
  - body: '@otsune さんにコメント頂いた書き方で書きなおしてみた → http://d.hatena.ne.jp/yohei-a/20100319/1269001560'
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10934848449
    when: ' 12分前 '
  - body: '@bambulibro Roger!!'
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10933045003
    when: ' 約1時間前 '
  - body: Job "SYSTEM"."SYS_IMPORT_FULL_02" completed with 3 error(s) at 23:50:01
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10930491273
    when: ' 約2時間前 '
  - body: 'Import: Release 10.2.0.4.0 - Production on Tuesday, 23 March, 2010 17:52:58'
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10930483091
    when: ' 約2時間前 '
  - body: "@bambulibro I'm going to release 1.3.1... ok?"
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10929373128
    when: ' 約2時間前 '
  - body: '@bambulibro やっぱりいないじゃないですかーwww'
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10929233654
    when: ' 約2時間前 '
  - body: インデックスは all ok
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10928534141
    when: ' 約3時間前 '
  - body: function がひとつ無効になっていた。EXECUTE UTL_RECOMP.RECOMP_SERIAL('スキーマ名');で解消した。なんで無効になってたんだろ。
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10928508244
    when: ' 約3時間前 '
  - body: 2時間40分か、前は23日かかってたからだいぶ速くなった。
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10928268749
    when: ' 約3時間前 '
  - body: Job "SYSTEM"."SYS_IMPORT_SCHEMA_01" completed with 1 error(s) at 22:21:25
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10928153782
    when: ' 約3時間前 '
  - body: 'Import: Release 10.2.0.4.0 - 64bit Production on Tuesday, 23 March, 2010 19:42:47'
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10928143906
    when: ' 約3時間前 '
  - body: '@takabow おつかれさまでしたー'
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10926496245
    when: ' 約3時間前 '
  - body: '@takabow 新宿駅で電車待ちしてます'
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10926135988
    when: ' 約4時間前 '
  - body: 'me too RT @takabow: 都営新宿線'
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10925832708
    when: ' 約4時間前 '
  - body: とりあえずラーメン屋に入った。うまい。
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10924702180
    when: ' 約4時間前 '
  - body: '@bambulibro 戻ったころには一人になりそうw'
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10924624034
    when: ' 約4時間前 '
  - body: 穴場なんですねー @ymotongpoo
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10924515095
    when: ' 約4時間前 '
  - body: 駒込って田端の近くなのか。知らなかった。
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10923993925
    when: ' 約4時間前 '
  - body: 'RT @ymotongpoo: 【おしらせ】駒込駅周辺で帰れずに困ってる人は俺の家で遊んだらいいじゃない。'
    link: !!perl/scalar:URI::http http://twitter.com/yoheia/status/10923944898
    when: ' 約4時間前 '

う〜ん、Web::Scraper すげー。
忘れっぽい自分のための初歩的なメモ。