You don't need to do $dom = Mojo::DOM->new($page); at all. ->res->dom returns an instance of Mojo::DOM, therefore your $page was already a Mojo::DOM. What you did next was then re-serialize the DOM object back to an HTML string and then REparse it! Of course it works, but it ... lets say ... not very efficient :-P
On Thursday, January 19, 2017 at 4:18:34 PM UTC-6, mimosinnet wrote: > > Your question has inspired me this code, based on Joel Berger post > <http://blogs.perl.org/users/joel_berger/2012/05/using-mojodom.html>, > that finds *a href *tags in a page (I am also a beginner ;-) ). > > #!/usr/bin/env perl > use Modern::Perl; > use Mojo::UserAgent; > use Mojo::DOM; > > my $ua = Mojo::UserAgent->new; > my $page = $ua->get('http://mojolicious.org/')->res->dom; > my $dom = Mojo::DOM->new($page); > > foreach my $a_href ( $dom->find('a[href]')->each ) { > say $a_href; > } > > I am sorry it does not answer your question, but I hope it helps. > > Cheers! > > El dijous, 19 gener de 2017 9:58:42 UTC+1, Tin Woodman va escriure: >> >> Hi , i m beginner in Mojo. I have some expirience of php. Sorry if i use >> it for more understanding. >> I m develop for self simple script scrapper. >> Part 1; Scrape root elements >> I have a page with a urls and titles in table html. >> my $res= >> Mojo::UserAgent->new->get('http://example.com')->res->dom; >> >> I need grab from this page all elements, >> But i find in internet only this example . There i m find only text of >> element >> my $texts = >> $res->find('.tdcont td a')->map(sub { $_->text }); >> >> I need a create array or something else . Maybe csv file. >> how i can create statement, when i need save from one element 2 or more >> data. For example >> url;title; >> url2;title2; >> or in php(sorry) >> array(array('url','title),array('url2','title2)) >> >> Part 2; Scrape child elements >> When exists array or something else data . I need run another scrapp in >> loop . >> For example(php): >> foreach($data as $item) { >> $url = $item[0]; >> $title = $item[1]; >> // there i need a parse elements >> // go to url >> doParseChild(); >> // there i need a exmaple how to check - exist element or not on page >> if (pagination exists) { >> //foreach ($pages as $page) { >> doParseChild(); >> } >> } >> } >> >> When first iteration of loop ended , go to second iteraion . etc.. >> >> Please help me , at least for a general understanding. Sorry for bad >> english and php . >> > -- You received this message because you are subscribed to the Google Groups "Mojolicious" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/mojolicious. For more options, visit https://groups.google.com/d/optout.
