今治市水道局水源状況の内容をPlaggerで自動保存のその後

Gmailに送られるメールのサブジェクトに日付を持ってきたくていじってた。結果こんな感じになった。

author: wireself
match: http://www\.imabari-suidou\.jp/left\.html
extract: (<table width="94%" border="0" cellpadding="5" cellspacing="0">.*?<td>(\x{5e73}\x{6210}.*?\x{65e5})<br>.*?)<br>.</td>.</tr>.</table>.</td>.</tr>.</table>.</body>.</html>
extract_capture: body title
global:
  plugin_path:
    - C:\Perl\site\lib\Plagger\Plugin
  assets_path: C:\Perl\site\lib\Plagger\assets
  timezone: Asia/Tokyo
  log:
    level: info
  cache:
    base: C:\plagger

plugins:
  - module: Subscription::Config
    config:
      feed:
        - http://www.imabari-suidou.jp/left.html

  - module: CustomFeed::Config

  - module: Filter::Rule
    rule:
      module: Deduped
      compare_body: 1
      path: C:\plagger\dedupe-tamagawadam.db

  - module: Filter::BreakEntriesToFeeds
    config:
      use_entry_title: 1

  - module: Publish::Gmail
    config:
      mailto:   hoge+tamagawadam@gmail.com
      mailfrom: hoge@gmail.com
      mailroute:
        via: smtp_tls
        host: smtp.gmail.com:587
        username: hoge@gmail.com
        password: PASSWORD

Filter::BreakEntriesToFeedsで“use_entry_title: 1”とすればtitleに入った文字列がサブジェクトになってくれるらしいことはわかってたのだが、ページ内の日付部分の取得が難航した。
日付部分は“<td>平成19年 3月 9日<br>”なので、“<td>(平成.*?日)<br>”で取得できるはずがどうしてもうまくいかなかった。原因はページがshift_jisで書かれているため日本語文字のマッチングがうまくいかないかららしいとはわかったが、じゃあどうすりゃいいのか。
ようやく見つけたのがこちら
真似してPublish::Debugとやってみると

Plagger::Plugin::CustomFeed::Config [info] Add  (今治市水道局)
Plagger [debug] $VAR1 = bless( {
  'link' => 'http://www.imabari-suidou.jp/left.html',
  'entries' => [
    bless( {
      'link' => undef,
      'widgets' => [],
      'meta' => {},
      'tags' => [],
      'body' => bless( {
        'data' => "<table width=\"94%\" border=\"0\" cellpadding=\"5\" cellspaci
ng=\"0\">
<tr bgcolor=\"#FFFFFF\">
<td>\x{5e73}\x{6210}19\x{5e74} 3\x{6708} 9\x{65e5}<br>
\x{5348}\x{524d}9\x{6642}\x{3000}\x{73fe}\x{5728} <br>
<br>
<font color=\"#006600\">\x{25a0}\x{30c0}\x{30e0}\x{8caf}\x{6c34}\x{7387}</font><
br>\x{3010}\x{7389}\x{5ddd}\x{30c0}\x{30e0}\x{3011}<br>
<img src=\"dam/dam5.gif\" width=\"64\" height=\"34\" hspace=\"4\" vspace=\"2\">
<br>
<table width=\"95%\" border=\"0\" align=\"center\">
<tr>
<td><font size=\"-1\">\x{8caf}\x{6c34}\x{91cf}</font></td>
<td align=\"right\"><font size=\"-1\">7,285,000 m3</font></td>
</tr>
<tr>
<td><font size=\"-1\">\x{8caf}\x{6c34}\x{7387}</font></td>
<td align=\"right\"><font size=\"-1\">98.4 %</font></td>
</tr>
<tr>
<td><font size=\"-1\">\x{5bfe}\x{524d}\x{65e5}\x{6bd4}</font></td>
<td align=\"right\"><font size=\"-1\">\x{b1}0.0 \x{30dd}\x{30a4}\x{30f3}\x{30c8}
</font></td>
</tr>
</table>
<font color=\"#006600\">&#160;</font><br>\x{3010}\x{53f0}\x{30c0}\x{30e0}\x{3011
}<br>
<img src=\"dam/dam4.gif\" width=\"64\" height=\"34\" hspace=\"4\" vspace=\"2\">
<br>
<table width=\"95%\" border=\"0\" align=\"center\">
<tr>
<td><font size=\"-1\">\x{8caf}\x{6c34}\x{91cf}</font></td>
<td align=\"right\"><font size=\"-1\">593,807 m3</font></td>
</tr>
<tr>
<td><font size=\"-1\">\x{8caf}\x{6c34}\x{7387}</font></td>
<td align=\"right\"><font size=\"-1\">73.3 %</font></td>
</tr>
<tr>
<td><font size=\"-1\">\x{5bfe}\x{524d}\x{65e5}\x{6bd4}</font></td>
<td align=\"right\"><font size=\"-1\">-0.4 \x{30dd}\x{30a4}\x{30f3}\x{30c8}</fon
t></td>
</tr>
</table>
<br>
<font color=\"#006600\">\x{25a0}\x{964d}\x{96e8}\x{91cf}</font><br><font size=\"
-1\">\x{3010}\x{89b3}\x{6e2c}\x{5730}\x{70b9}\x{ff08}\x{7389}\x{5ddd}\x{753a}\x{
6728}\x{5730}\x{ff09}\x{3011}</font>
<table width=\"95%\" border=\"0\" align=\"center\">
<tr>
<td><font size=\"-1\">\x{524d}\x{65e5}\x{96e8}\x{91cf}</font></td>
<td align=\"right\"><font size=\"-1\">0.0 mm</font></td>
</tr>
<tr>
<td><font size=\"-1\">\x{5f53}\x{6708}\x{7d2f}\x{8a08}\x{96e8}\x{91cf}</font></t
d>
<td align=\"right\"><font size=\"-1\">23.0 mm</font></td>
</tr>
<tr>
<td><font size=\"-1\">\x{5f53}\x{6708}\x{5e73}\x{5e74}\x{96e8}\x{91cf}</font></t
d>
<td align=\"right\"><font size=\"-1\">112.0 mm</font></td>
</tr>
</table>
<br>
<font color=\"#006600\">\x{25a0}\x{5730}\x{4e0b}\x{6c34}\x{4f4d}</font><br>
<table width=\"95%\" border=\"0\" align=\"center\">
<tr>
<td><font size=\"-1\">\x{89b3}\x{6e2c}\x{4e95}\x{306e}\x{6c34}\x{4f4d}<br>\x{ff0
8}\x{7247}\x{5c71}\x{6c34}\x{6e90}\x{5730}\x{ff09}</font></td>
<td align=\"right\"><font size=\"-1\">5.30 m</font></td>
</tr>
<tr>
<td><font size=\"-1\">\x{5bfe}\x{524d}\x{65e5}\x{6bd4}</font></td>
<td align=\"right\"><font size=\"-1\">\x{b1}0.0 m</font></td>
</tr>
</table>
</td>
</tr>
</table>
",
        'type' => 'html'
      }, 'Plagger::Text' ),
      'rate' => 0,
      'summary' => bless( {
        'data' => "<table>
<tr bgcolor=\"#FFFFFF\">
<td>\x{5e73}\x{6210}19\x{5e74} 3\x{6708} 9\x{65e5}<br>

こんな感じで取得内容がコンソールに表示されたので、該当部分を見つけて利用した。なるほどなあ。