[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Omaha.pm] Next meeting: Dec. 16!




Below are the fruits of our labor last Thr. Thanks to everyone that came out to help! Feel free to post enhancements if you want the continue the tinkering.

Our next meeting is Dec. 16:

   http://omaha.pm.org

j



#!/usr/bin/perl

use Data::Dumper;
use WWW::Mechanize;

my %data;
open (IN, "perl_mongers.xml") or die;
while (<IN>) {
   s/[^ -~]//g;
   chomp;
   if (/<group id/) {
      %data = ();
      ($data{gid}) = (/(\d+)/);
      next;
   }
   my ($ele, $data) = (/<(.*)>(.+)<\/.*>/);
   if ($ele and $data) {
      $data{$ele} = $data;
   }
   if (/<\/location>/ and not defined $data{longitude}) {
      go_fetch(%data);
   }
}


sub go_fetch {
   my (%data) = @_;
   return unless ($data{city} and $data{country});
   #print Dumper %data;
   my $search = "$data{city}, $data{country}";
   print "$search\n";

   my $mech = WWW::Mechanize->new();
   my $url = "http://www.astro.com/atlas/horoscope?submit=Search&";;
      # expr=Milpitas%2C+United+States+of+America
   $url .= "expr=$search";
   $url =~ s/ /\+/g;
   $url =~ s/,/\%2C/g;
   #print "$url\n";

   $mech->get( $url );

   #print $mech->content;
   #open (OUT, ">out");
   #print OUT $mech->content;
   #close OUT;
   #print Dumper (split /\n/s, $mech->content);
   #print "\n\n\n\n\n\n=======================";
   my @return = grep { /ade.cgi/ } (split /\n/s, $mech->content);
   #print Dumper @return;
   foreach (@return) {
      s/<.*?>//g;
      conv_latlong($_);
      print "   $_\n";
   }
   exit;
}

sub conv_latlong {
   my ($str) = @_;
   my ($lat, $long) = (/(\d+[ns]\d+).*?(\d+[ew]\d+)/);
   print "[$lat $long]";
   my ($newlat, $newlong);

}



__END__

                <location>
                        <city>Cascais</city>
                        <state>Lisbon</state>
                        <region>Cascais</region>
                        <country>Portugal</country>
                        <continent>Europe</continent>
                        <longitude></longitude>
                        <latitude></latitude>
                </location>