[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>