in reply to Re: Passing 2 tags to find() method
in thread Passing 2 tags to find() method

Hi Marto,
I have made use of the following packages:-
use strict;
use warnings;
use Data::Dumper;
use WWW::Mechanize;
use WWW::Mechanize::TreeBuilder;
I think the method is a part of WWW::Mechanize::TreeBuilder.I might have forgotten to mention about it in my previous threads.Sorry for the inconvenience.I have been assigned the task of scrapping the web page.
The project I am working on is a Web based application that uses Real time Perl WebFramework-> mojolicious.

Replies are listed 'Best First'.
Re^3: Passing 2 tags to find() method
by marto (Cardinal) on Jul 27, 2016 at 10:09 UTC

    "I think the method is a part of WWW::Mechanize::TreeBuilder"

    It isn't. Show the code you're actually running, because nothing provided here does what you claim.

    "The project I am working on is a Web based application that uses Real time Perl WebFramework-> mojolicious."

    The code I gave you uses Mojo::DOM, part of Mojolicious. Previously I asked you to read How do I post a question effectively?. The best way to get help is show an example of the code you are actually running, the input (in this case some HTML), the output you get and the output you want. This approach requires effort from you but is quicker than others trying to guess what you may be doing.

      Hi Marto,
      Please see the below code snippet.
      Note:-I am using a different URL.The below URL may not even exist.I have mentioned the below URL just as an example.You can put any url you want.

      use WWW::Mechanize::TreeBuilder; my $mech = WWW::Mechanize->new; WWW::Mechanize::TreeBuilder->meta->apply($mech); $mech->get( 'http://www.abc.com/na/xxx/123' ); foreach my $b ($mech->find('meta')) { my $attr_prop=$b->attr('property'); if(defined($attr_prop)) { my $attr_content = $b->attr('content') || next; print Dumper($attr_content); } } foreach my $element_div ($mech->find('div','span')) { my $div_attr_class=$element_div->attr('class')|| next; if($div_attr_class eq 'details-title-text'){ my $strong_tag=$element_div->find('strong'); print $strong_tag->as_text(); } }

        Apologies, I now see that WWW::Mechanize::TreeBuilder pulls in methods from HTML::Element, which has a method called find all be it depreciated in favor of the look_down method, which you could use to find what you want (see the documentation). You don't have to show us the real page you're working with, just some data which (like I've said a few times) replicates your problem, the output your code produces and the output you expect. The code posted is also missing use WWW::Mechanize; use Data::Dumper;.