NAME Web::PageMeta - get page open-graph / meta data SYNOPSIS use Web::PageMeta; my $page = Web::PageMeta->new(url => "https://www.apa.at/"); say $page->title; say $page->image; async fetch previews and images: use Web::PageMeta; my @urls = qw( https://www.apa.at/ http://www.diepresse.at/ https://metacpan.org/ https://github.com/ ); my @page_views = map { Web::PageMeta->new( url => $_ ) } @urls; Future->wait_all( map { $_->fetch_image_data_ft, } @page_views )->get; foreach my $pv (@page_views) { say 'title> '.$pv->title; say 'img_size> '.length($pv->image_data); } # alternativelly instead of Future->wait_all() use Future::Utils qw( fmap_void ); fmap_void( sub { return $_[0]->fetch_image_data_ft }, foreach => [@page_views], concurrent => 3 )->get; DESCRIPTION Get (not only) open-graph web page meta data. can be used in both normal and async code. For any other than 200 http status codes during data downloads, HTTP::Exception is thrown. ACCESSORS new Constructor, only "url" is required. url HTTP url to fetch data from. user_agent User-Agent header to use for http requests. Default is one from Chrome 89.0.4389.90. title Returns title of the page. description Returns description of the page. image Returns image location of the page. image_data Returns image binary data of "image" link. page_meta Returns hash ref with all open-graph data. extra_scraper Web::Scrape object to fetch image, title or description from different than default location. use Web::Scrape; use Web::PageMeta; my $escraper = scraper { process_first '.slider .camera_wrap div', 'image' => '@data-src'; }; my $wmeta = Web::PageMeta->new( url => 'https://www.meon.eu/', extra_scraper => $escraper, ); fetch_page_meta_ft Returns future object for fetching paga meta data. See "ASYNC USE". On done "page_meta" hash is returned. fetch_image_data_ft Returns future object for fetching image data. See "ASYNC USE" On done "image_data" scalar is returned. ASYNC USE To run multiple page meta data or image http requests in parallel or to be used in async programs "fetch_page_meta_ft" and fetch_image_data_ft returning Future object can be used. See "SYNOPSIS" or t/02_async.t for sample use. SEE ALSO AUTHOR Jozef Kutej, "" LICENSE AND COPYRIGHT Copyright 2021 jkutej@cpan.org This program is free software; you can redistribute it and/or modify it under the terms of either: the GNU General Public License as published by the Free Software Foundation; or the Artistic License. See http://dev.perl.org/licenses/ for more information.