#!/usr/bin/perl -w
use LWP::Simple;
use HTML::TableExtract;
my $html_report;
# replace this with LWP::Simple get() or somesuch
# for fetching main report
open(F, "<Report.htm") or die "oof: $!\n";
$html_report = join('', <F>);
close(F);
foreach my $row (rows_from_main_report($html_report)) {
next unless $row->[1] =~ /failed/i;
my($link) = $row->[2] =~ /href\s*\=\s*\"?([^\"]+)/;
unless ($link) {
print STDERR "no link from row ($row->[2])\n";
next;
}
print "$link\n";
my $html = get($link);
unless ($html) {
print STDERR "no html from link $link\n";
next;
}
print "$link\n";
foreach my $row (rows_from_fail_report($html)) {
# do whatever here
print join(' : ', @$row), "\n";
}
}
sub rows_from_main_report {
my $html = shift || die "HTML string required\n";
my $te = HTML::TableExtract->new(
headers => [qw(computer data time)],
keep_html => 1,
);
$te->parse($html_report);
my $ts = $te->first_table_state_found;
$ts->rows;
}
sub rows_from_fail_report {
my $html = shift || die "HTML string required\n";
my $te = HTML::TableExtract->new(
headers => [qw(job date client class schedule master desc)],
);
$te->parse($html);
my $ts = $te->first_table_state_found;
$ts->rows;
}
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.
|