#!/usr/bin/perl -w use strict; use WWW::Mechanize; # Change these for different years and different OpenGuides installs. my $year = "2012"; my $base_url = "http://london.randomness.org.uk/wiki.cgi"; $base_url .= "?action=index;index_type=category;index_value="; my %gbg = get_frequencies( "Good+Beer+Guide+$year" ); my %all = get_frequencies( "Pubs" ); my @gbgnames = get_array( \%gbg ); my @allnames = get_array( \%all ); my %percent; my $railways; my $gbg_railways; foreach my $pub ( @allnames ) { my $name = $pub->{name}; my $n = $pub->{n}; my $gbgn = $gbg{$name} || 0; if ( $n > 4 ) { $percent{$name} = 100.0*$gbgn/$n; } # print "$name: $n ($gbgn in the GBG)\n"; } my @pcarr = get_array( \%percent ); foreach my $pub ( @pcarr ) { printf "%s: %.2f%% in the GBG.\n", $pub->{name}, $pub->{n}; } sub get_frequencies { my $index_value = shift; my $index_url = $base_url . $index_value; my $agent = WWW::Mechanize->new; $agent->get( $index_url ); my $index_html = $agent->content; $index_html =~ s|^.*