Beefy Boxes and Bandwidth Generously Provided by pair Networks
Problems? Is your data what you think it is?

Re: anchor text match

by JadeNB (Chaplain)
on Dec 27, 2009 at 21:06 UTC ( #814543=note: print w/replies, xml ) Need Help??

in reply to anchor text match

As Anonymonk points out, the answer to “Is there a good way to parse $nested_format with a regex?” is (almost always) no. You say you've tried some members of the HTML:: family of modules; if you show the code you came up with in your attempts, then it'll be a lot easier to see how to adapt it for your needs.

Replies are listed 'Best First'.
Re^2: anchor text match
by kumar801012 (Initiate) on Dec 30, 2009 at 17:35 UTC
    I have tried LinkExtractor, TokenParser, Mechanize, TreeBuilder modules. For below html:

    a href="" target=_blank><img src= height=11 width=11 border=0 alt="Open this result in new window"> </anchor>

    all of them give "Open this result in new window" as the anchor text.

    Ideally I would like to see blank value or a string like "image" returned so that I know there was no anchor text but the href still matched the target url( in this case). Is there a way to tweak those modules to get the desired result?

      "I have tried...."

      is as uninformative as a classic error-in-posting, namely:

      "...doesn't work."

      Try showing us what you've tried (minimal cases which fail, please).

        #!/usr/bin/perl -- use strict; use warnings; use HTML::TreeBuilder; my $html = <<'__HTML__'; <a href="" target=_blank><img src="" alt="Open this result in new window">ANCHOR TEXT</a> <a href="" target=_blank><img src="" alt="Two clues for the price of one"></a> __HTML__ { my $h = HTML::TreeBuilder->new_from_content($html); for my $link ( $h->look_down( _tag => q{a}, href => 'http://www.yaho' ) ) { print $link->attr('href'),"\n"; my $text = $link->as_trimmed_text; unless ($text) { $text = join ' ', map { $_->attr('alt') } $link->look_down( alt => qr/^.+$/ ); } print "$text\n\n"; } ## end for my $link ( $h->look_down...) } __END__

        The output is :; ANCHOR TEXT; Two clues for the price of one

        But the desired output is :; ANCHOR TEXT; IMAGE (indicating no anchor text and also presence of img tag within anchor tag )

        Any ideas?

Log In?

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

How do I use this? | Other CB clients
Other Users?
Others avoiding work at the Monastery: (4)
As of 2022-12-03 19:43 GMT
Find Nodes?
    Voting Booth?

    No recent polls found