#!/usr/bin/perl use strict; use warnings; use Web::Scraper; use Data::Dumper::Simple; my( $infile ) = $ARGV[ 0 ] =~ m/^([\ A-Z0-9_.-]+)$/ig; my $page = scraper { process '//*/div[@id="Results"]/table/tr/td', 'table[]' => scraper { process '//span', 'name' => '@id', 'attr' => '@title'; }; process '//*//table[@id="Documents"]/tr', 'docs[]' => scraper { process '//tr', 'attr' => '@title'; }; }; open(FILE, "< $infile" ); my $content = do { local $/; }; my $res = $page->scrape( $content ) or die "Can't define content to parser $!"; # print Dumper( $res ); my %values; for my $data ( @{$res->{ table } } ) { next unless $data->{ name } and $data->{ attr }; foreach my $line (split /\n/, $data->{ attr } ) { %values = split /:/, $line; } print "$data->{ name }\t $data->{ attr }\n\n" ; } print Dumper( %values ); #print $content;