R
roberthuberjr
I have an html file I'm reading in from my file system (not via
get($URL) that I'm trying to parse the table from using
HTML::TableContentParser.
My script runs, but produces no results. I'm thinking I need to read
the file into an arrary to get the parser to work on it. Here's my
code (lifted from the Perl cookbook mostly) -
#!/usr/bin/perl
use HTML::TableContentParser;
use HTML::Entities;
use strict;
my $FILE = open("<netflow_data");
#??????read the file into an arrary maybe????
my $tcp = new HTML::TableContentParser;
my $tables = $tcp->parse($FILE);
my $modules = $tables->[1];
foreach my $r (@{ $modules->{rows} })
{
my ($date_time, $sip, $dip, $protocol, $sport, $dport,
$tcpflags, $tos, $num_pkts, $num_octets, $srcasn, $dstasn) =
parse_module_row($r, $FILE);
print "$date_time $sip $dip $protocol $sport $dport $tcpflags
$tos $num_pkts $num_octets $$srcasn $dstasn\n";
}
sub parse_module_row
{
my ($row, $FILE) = @_;
my ($date_time, $sip, $dip, $protocol, $sport, $dport,
$tcpflags, $tos, $num_pkts, $num_octets, $srcasn, $dstasn);
$date_time = $row->{cells}[0]{data};
$sip = $row->{cells}[1]{data};
$dip = $row->{cells}[2]{data};
$protocol = $row->{cells}[3]{data};
$sport = $row->{cells}[4]{data};
$dport = $row->{cells}[5]{data};
$tcpflags = $row->{cells}[6]{data};
$tos = $row->{cells}[7]{data};
$num_pkts = $row->{cells}[8]{data};
$num_octets = $row->{cells}[9]{data};
$srcasn = $row->{cells}[10]{data};
$dstasn = $row->{cells}[10]{data};
return ($date_time, $sip, $dip, $protocol, $sport, $dport,
$tcpflags, $tos, $num_pkts, $num_octets, $srcasn, $dstasn);
}
get($URL) that I'm trying to parse the table from using
HTML::TableContentParser.
My script runs, but produces no results. I'm thinking I need to read
the file into an arrary to get the parser to work on it. Here's my
code (lifted from the Perl cookbook mostly) -
#!/usr/bin/perl
use HTML::TableContentParser;
use HTML::Entities;
use strict;
my $FILE = open("<netflow_data");
#??????read the file into an arrary maybe????
my $tcp = new HTML::TableContentParser;
my $tables = $tcp->parse($FILE);
my $modules = $tables->[1];
foreach my $r (@{ $modules->{rows} })
{
my ($date_time, $sip, $dip, $protocol, $sport, $dport,
$tcpflags, $tos, $num_pkts, $num_octets, $srcasn, $dstasn) =
parse_module_row($r, $FILE);
print "$date_time $sip $dip $protocol $sport $dport $tcpflags
$tos $num_pkts $num_octets $$srcasn $dstasn\n";
}
sub parse_module_row
{
my ($row, $FILE) = @_;
my ($date_time, $sip, $dip, $protocol, $sport, $dport,
$tcpflags, $tos, $num_pkts, $num_octets, $srcasn, $dstasn);
$date_time = $row->{cells}[0]{data};
$sip = $row->{cells}[1]{data};
$dip = $row->{cells}[2]{data};
$protocol = $row->{cells}[3]{data};
$sport = $row->{cells}[4]{data};
$dport = $row->{cells}[5]{data};
$tcpflags = $row->{cells}[6]{data};
$tos = $row->{cells}[7]{data};
$num_pkts = $row->{cells}[8]{data};
$num_octets = $row->{cells}[9]{data};
$srcasn = $row->{cells}[10]{data};
$dstasn = $row->{cells}[10]{data};
return ($date_time, $sip, $dip, $protocol, $sport, $dport,
$tcpflags, $tos, $num_pkts, $num_octets, $srcasn, $dstasn);
}