Brian Volk <[EMAIL PROTECTED]> wrote:
: Hi All,
:
: I'm trying to only get the text from w/in a certain table in
: the HTML source. Right now I am getting all the text in the
: source.
: Here is my script.... I made notes in the script.
:
: #!/usr/bin/perl -w
Always use strict.
use strict;
: use HTML::TokeParser::Simple;
[snip]
: my $parser = HTML::TokeParser->new(\$page) ||
: die "Could not parse page";
Wrong object.
my $parser = HTML::TokeParser::Simple->new( \$page ) ||
die "Could not parse page";
[snip]
: # ---------- with this I get Use of uninitialized value in
: # print.. I think LWP::Simple is returning that? ---------
No, both $attr and $tag are undefined.
: # my $tag = $parser->get_tag("table") foreach (1..28);
: # my $attr = $tag->[1]->{"colspan"};
: # print $tag->[0], ":", $attr, "\n";
You are attempting to access the 28th table, but there are
only 27 tables in the document.
use strict;
use warnings;
use HTML::TokeParser::Simple;
use LWP::Simple;
my $url = 'http://www.kcprofessional.com/us/product-details.asp'
. '?search=v1&searchtext=01970&x=0&y=0';
my $page = get( $url ) || die qq(Could not load "$url");
my $parser = HTML::TokeParser::Simple->new( \$page ) ||
die "Could not parse $url";
my $table_count;
++$table_count while $parser->get_tag( 'table' );
print "$table_count tables found.\n";
[snip]
: # ---------- I have get_attr # out because I get can't locate
: # in @INC -- (using ActiveState Perl)
There is no get_attr() method in HTML::TokeParser::Simple. We
can verify this using the can() method.
use strict;
use warnings;
use HTML::TokeParser::Simple;
my $parser = HTML::TokeParser::Simple->new(*DATA) ||
die "Could not parse page";
printf
"The get_attr() method %s\n",
$parser->can( 'get_attr' ) ? 'exists' : 'does not exist';
__END__
HTH,
Charles K. Clarkson
--
Mobile Homes Specialist
254 968-8328
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>