#!/usr/bin/perl use LWP::Simple; $USAGE = "Usage:\n"; $USAGE .= "$0 \n"; $USAGE .= "\n"; if (@ARGV == 0) { print $USAGE; exit; } $StationID = $ARGV[0]; $URL = 'http://www.wunderground.com/cgi-bin/findweather/getForecast?query=' . $StationID; $DataFileName = "$StationID.dat"; $document = get($URL); $document =~ s|||g; $document =~ s|||g; $document =~ s/((?<=[^A-Za-z,])[ \t]+)|([ \t]+(?=\W))//g; $document =~ s/\n//g; $document =~ s/\r//g; if ($document =~ /Observed at/) { ($time, $place) = ($document =~ m|Updated:(.*?)
Observed at(.*?)\(|); ($TempC) = ($document =~ m|Temperature.*?(\d+\.?\d*) °C|); ($TempF) = ($document =~ m|Temperature.*?(\d+\.?\d*) °F|); ($humidity) = ($document =~ m|Humidity(\d+\.?\d*)\%|); ($conditions) = ($document =~ m|Conditions(.+?)|); ($DewPointF) = ($document =~ m|Dew Point.*?(\d+\.?\d*) °F|); ($DewPointC) = ($document =~ m|Dew Point.*?(\d+\.?\d*) °C|); ($Pressure_mmHg) = ($document =~ m|Pressure.*?(\d+\.?\d*) in|); ($Pressure_hPa) = ($document =~ m|Pressure.*?(\d+\.?\d*) hPa|); ($Wind) = ($document =~ m|Wind(.*?)|); ($WindDirection) = ($document =~ m|Wind(.+?) at|); ($WindSpeed_kmh) = ($document =~ m|Wind.*?(\d+\.?\d*) km/h|); ($WindSpeed_mph) = ($document =~ m|Wind.*?(\d+\.?\d*) mph|); ($WindGust) = ($document =~ m|Wind Gust(.*?)|); ($WindGust_kmh) = ($document =~ m|Wind Gust.*?(\d+\.?\d*) km/h|); ($WindGust_mph) = ($document =~ m|Wind Gust.*?(\d+\.?\d*) mph|); ($Visibility) = ($document =~ m|Visibility(.*?)|); ($Visibility_miles) = ($document =~ m|Visibility.*?(\d+\.?\d*) miles|); ($Visibility_km) = ($document =~ m|Visibility.*?(\d+\.?\d*) kilometers|); print "Location : \"" . $place . "\"\n"; print "Time : \"" . $time . "\"\n"; print "Conditions : " . $conditions . "\n"; print "UTC : " . "10:10" . "\n"; print "Temperature : " . $TempC . " C (" . $TempF . " F)\n"; print "Dew Point : " . $DewPointC . " C (" . $DewPointF . " F)\n"; # print "Wind chill : " . $chill . "\n"; print "Pressure : " . $Pressure_hPa . " hPa (" . $Pressure_mmHg . " mmHg)\n"; print "Humidity : " . $humidity . " %\n"; print "Wind : " . $Wind . "\n"; if ($Wind == "Calm") { print "Wind : Calm\n"; } # } else { print "Wind direction : " . $WindDirection . "\n"; print "Wind speed : " . $WindSpeed_kmh . " km/h (" . $WindSpeed_mph . " mph)\n"; # } if ($WindGust != "-") { print "Wind ghust : " . $WindGust_kmh . " km/h (" . $WindGust_mph . " mph)\n"; } if ($Visibility != "-") { print "Visibility : " . $Visibility_km . " kilometers (" . $Visibility_miles . " miles)\n"; } else { print "Visibility : " . $Visibility . "\n"; } } else { print("HTML parser failed.\n"); # print($document); }