in reply to Extracting stylesheet links or url from HTML Page

I recommend using the XML::Twig module. This uses HTML::Tree under the hood to parse the html, and you say that's expensive, but I don't know what you mean by that: is it slow, does it use too much memory, is it hard to install?

Here's an example script. Run it with the filename of the html as an argument.

use warnings; use strict; use XML::Twig; my $tw = XML::Twig->new; $tw->parsefile_html($ARGV[0]); for my $t ($tw->findnodes("//link")) { if ("stylesheet" eq lc($t->att("rel"))) { warn "found stylesheet: ", $t->att("href"); } }

Note that HTML::Tree already lowercases the element and attribute names for you (because this is HTML, not XML), but it does not lowercase the attribute value, so you have to do that yourself.

Replies are listed 'Best First'.
Re^2: Extracting stylesheet links or url from HTML Page
by mr_p (Scribe) on Jun 24, 2010 at 13:20 UTC
    I am concerned about speed.

    I was able also able to parse using HTML::TokeParser::Simple. So now I have three ways of doing this. Can you please guide me to which is the best way for me to do this based on speed and reliability (updates) etc..

    1. use HTML::TokeParser::Simple 2. use XML::Twig; 3. use XML::LibXML;

    Thanks.

      Not really!

      The specific criteria present enough of a challenge; the "etc." is the skunk in the woodpile. Unless we know which elements of et cetera you really care about, we can't chose for you.

      That said, another valid answer is "Pick one and if it works for you, its probably right for you... at least for now."

      You can't profile, test, or (uh-oh; here it comes: ) etc. until you've written the code.

Re^2: Extracting stylesheet links or url from HTML Page
by mr_p (Scribe) on Jun 24, 2010 at 14:21 UTC
    I am getting following error. using XML::Twig

    Parsing of undecoded UTF-8 will give garbage when decoding entities at /usr/lib/perl5/vendor_perl/5.8.8/XML/Twig.pm line 731