Beefy Boxes and Bandwidth Generously Provided by pair Networks
No such thing as a small change
 
PerlMonks  

Re: HTML::TokeParser not giving any tokens.

by jellisii2 (Hermit)
on Dec 01, 2014 at 12:55 UTC ( #1108819=note: print w/replies, xml ) Need Help??


in reply to HTML::TokeParser not giving any tokens.

It appears from a quick read of HTML::TokeParser it expects actual HTML in the form of a file handle or string, not a LWP::UserAgent object.
use strict; use warnings; use LWP::UserAgent; use CGI qw(:standard :cgi-lib -debug fatalsToBrowser warningsToBrowser +); use HTML::TokeParser; my $cgi = new CGI; print $cgi->header(); print start_html(-title =>'Save QC'); print "Starting...",br; my $ua = LWP::UserAgent->new; $ua->timeout(10); $ua->env_proxy; $ua->agent('Mozilla/5.0 Windows Gecko/30.0 Firefox/30.0'); my $response = $ua->get('http://questionablecontent.net/'); if ($response->is_success) { # print $response->decoded_content; # or whatever print br,br,"Success!"; my $tp = HTML::TokeParser->new(\$response->content) || die "Can't +open: $!"; while (my $token = $tp->get_tag('img')) { my $src = $token->[1]{'src'}; print "src =",$src,br } } else { print $response->decoded_content; # or whatever print br,br,"Failure!"; die $response->status_line; } print end_html;
Nets the following output:
(offline mode: enter name=value pairs on standard input; press ^D or ^ +Z when done) Content-Type: text/html; charset=ISO-8859-1 (offline mode: enter name=value pairs on standard input; press ^D or ^ +Z when done) <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang="en-US" xml:lang="en-U +S"> <head> <title>Save QC</title> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1 +" /> </head> <body> Starting...<br /><br /><br />Success!src =http://www.projectwonderful. +com/nojs.php?id=39770&type=5<br />src =http://www.questionablecontent +.net/images/patreonad.png<br />src =../images/logo14.png<br />src =ht +tp://www.questionablecontent.net/comics/2845.png<br />src =http://www +.questionablecontent.net/images/1s1k.gif<br />src =http://www.questio +nablecontent.net/images/station.gif<br />src =http://www.questionable +content.net/images/qc-vol04.jpg<br />src =http://www.questionablecont +ent.net/images/yelingboard.jpg<br />src =http://www.questionableconte +nt.net/images/18x24.jpg<br />src =http://www.questionablecontent.net/ +images/mlgshirt.jpg<br />src =../images/ag.gif<br />src =http://api.f +lattr.com/button/flattr-badge-large.png<br />src =http://www.question +ablecontent.net/images/patreonad2.png<br />src =http://www.projectwon +derful.com/nojs.php?id=138&type=2<br /> </body> </html>
-- edit: Fixed HTML::TokeParser's link.

Replies are listed 'Best First'.
Re^2: HTML::TokeParser not giving any tokens.
by rbhyland (Acolyte) on Dec 01, 2014 at 13:45 UTC

    That's got it. Thanks! I missed the difference between $response and $response->content. I've been monkeying around with that for about 16 hours.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: note [id://1108819]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others making s'mores by the fire in the courtyard of the Monastery: (4)
As of 2021-10-25 07:20 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?
    My first memorable Perl project was:







    Results (89 votes). Check out past polls.

    Notices?