M.C.P.C.

―むり・くり―プラスコミュニケーション(更新終了)


| トップページ |

2012年3月13日 23:24

WebService::NiigataUnyu 0.06が動作不良になったので取り急ぎパッチ

このエントリーをはてなブックマークに追加 mixiチェック

新潟運輸の荷物配達状況を確認するPerlモジュールWebService::NiigataUnyu 0.06の動作がおかしくなりました。原因は、スクレーピング結果のお問い合わせ番号の後ろに空白が付くようになってしまったことにあります。

こういうのはプログラムの世界ではトリム(Trim)とかいって、入力値などの前後の空白を除去する処理をするのですが、やっていなかったのでした。

実際に稼働しているシステムで不具合が出たのですが、当方Perlのパッケージのビルド方法なんて毎回忘れてしまう故、ちょっとパッケージを作ってCPANに上げるだけの余裕がありませんので、取り急ぎパッチを用意しました。

$ diff -c NiigataUnyu.pm.old NiigataUnyu.pm
*** NiigataUnyu.pm.old  2011-04-06 00:31:51.000000000 +0900
--- NiigataUnyu.pm      2012-03-13 23:13:26.000000000 +0900
***************
*** 73,79 ****
      process '//div[3]/div/div/div[2]/div/table',
      'results[]' => scraper {
        process q{//tr/th/font[text() =~ /お問合せ番号/]/../../td},
!       number => 'TEXT',
        process '//tr/th/font[text() =~ /日付/ and @size = 4]/../../td',
        date => [ 'TEXT', sub { s/\s//g; return $_; } ],
        process '//tr/th/font[text() =~ /時間/ and @size = 4]/../../td',
--- 73,79 ----
      process '//div[3]/div/div/div[2]/div/table',
      'results[]' => scraper {
        process q{//tr/th/font[text() =~ /お問合せ番号/]/../../td},
!       number => [ 'TEXT', sub { s/^\s*//; s/\s*$//; return $_; } ],
        process '//tr/th/font[text() =~ /日付/ and @size = 4]/../../td',
        date => [ 'TEXT', sub { s/\s//g; return $_; } ],
        process '//tr/th/font[text() =~ /時間/ and @size = 4]/../../td',

このパッチを有効に使っていただける人がどれだけいるかは謎です。

投稿 大野 義貴 [Perl] | |

トラックバック(0)

トラックバックURL: http://blog.dtpwiki.jp/MTOS/mt-tb.cgi/3890

コメントする