HTML::TableExtractモジュールに関連する投稿が他にもたくさんあることは知っていますが、それらはすべて、現時点で理解できるよりもはるかに高いレベルのものです。電子メールから非常に小さなテーブル (3 行、5 列) があり、2 行目のすべてのデータをスクレイピングしたいと考えています。しかし、Perl に関する知識が限られているため、オンラインのドキュメントをたどるのに苦労しています。
テーブルは次のようになります。
Time notspam probablespam likelyspam spam
2012-05 10252205 62192 55995 3797710
Total "" "" "" ""
これが、解析しようとしているコードのスニペットです。これは 3 つの行の 2 番目です。
<tr class=3DmailViewUnreadOdd>
<td class=3DreportViewHeader align=3D"left">
=09
2012-05
</td>
=20=20
=20=20=20=20
<td align=3D'right' class=3D'mailViewRowReadEven'>
10252205
=20=20=20=20
</td>
=20=20
=20=20=20=20
<td align=3D'right' class=3D'mailViewRowReadEven'>
62192
=20=20=20=20
</td>
=20=20
=20=20=20=20
<td align=3D'right' class=3D'mailViewRowReadEven'>
55995
=20=20=20=20
</td>
=20=20
=20=20=20=20
<td align=3D'right' class=3D'mailViewRowReadEven'>
3797710
=20=20=20=20
</td>
=20=20
</tr>
これが私がこれまでに試したことです。HTML::TableExtract ページの例を使用し、必要に応じて変更しました。しかし、それは何も返していません:
use HTML::TableExtract;
my $te = HTML::TableExtract->new(
headers => [qw(notspam probablespam likelyspam spam)]);
my $html = 'test.html';
$te->parse($html);
# Examine all matching tables
foreach $ts ($te->tables) {
print "Table (", join(',', $ts->coords), "):\n";
foreach $row ($ts->rows) {
print join(',', @$row), "\n";
}
}
日付 (2012-05) と数字 (10252205、62192、55995、3797710) を取り出して変数に格納したいと考えています。depth および count 引数を使用してデータを抽出する必要がありますか?