1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56
|
#!/usr/bin/perl
my $symbol = $ARGV[0] || "INTC";
$symbol =~ tr/A-Z/a-z/;
$s = substr($symbol, 0, 1);
my $Symbol = $symbol;
$Symbol =~ tr/a-z/A-Z/;
my $junk;
my $float;
my $short;
my $vol;
my $when;
my $url = "http://finance.yahoo.com/q/ks?s=$symbol";
open (COMMAND, "lynx -width=9999999 -dump -connect_timeout=10 \"$url\" |")
|| die "Can't open shortint '$url'\n";
while (<COMMAND>) {
chop;
# print "$_\n";
if ($_ =~ "Float:" && !$float) {
($j, $j, $float) = split(/\s+/);
}
if ($_ =~ "Shares Short" && !$short) {
($j, $j, $j, $j, $j, $when, $short) = split(/\s+/);
}
if ($_ =~ "Average Volume") {
($j, $j, $j, $j, $j, $vol) = split(/\s+/);
}
}
close (COMMAND);
my $ishort;
my $ifloat;
if ($short =~ 'K$') { $ishort = $short * 1000 }
if ($short =~ 'M$') { $ishort = $short * 1000000 }
if ($short =~ 'B$') { $ishort = $short * 1000000000 }
if ($float =~ 'K$') { $ifloat = $float * 1000 }
if ($float =~ 'M$') { $ifloat = $float * 1000000 }
if ($float =~ 'B$') { $ifloat = $float * 1000000000 }
if (!$ifloat) {
print "$symbol: Can't determine float\n";
exit 0;
}
printf "%s: Short: %s (%.2f%%), Float: %s, AveVol: %s (as of %s)\n",
$Symbol,
$short, ($ishort * 100) / $ifloat,
$float,
$vol,
$when;
|