Archive

Archive for the ‘Perl’ Category

Yahoo Finance Economic Events to XML with Perl

May 23rd, 2008

This is a very simple script which gets yahoo economic events from the yahoo finance website and converts it to XML.


#!c:\perl\bin\perl.exe

use LWP::Simple;
use LWP::UserAgent;
use HTML::TableExtract;
use CGI;
use CGI::Carp qw(fatalsToBrowser);
my $cgi = new CGI;

my $url = “http://biz.yahoo.com/c/e.html”;
my $capture = get($url);
#http://www.treasurydirect.gov/xml/PendingAuctions.xml
print $cgi->header(-type => ‘application/xml’); # make browser expect xml

$te = HTML::TableExtract->new( depth => 0, count => 5 );
print “\n”;
$te->parse($capture);
my $table = $te->first_table_found;
foreach my $ts ($te->tables)
{
#print “Table found at “, join(’,', $ts->coords), “:\n”;
#print @$row;
$count = 0;
foreach $row ($ts->rows) {
$a = @$row->[0];
$b = @$row->[1];
$c = @$row->[2];
$d = @$row->[3];
$e = @$row->[4];
$f = @$row->[5];
$g = @$row->[6];
$h = @$row->[7];
$i = @$row->[8];
#print “$a,$b,$c,$d,$e,$f,$g,$h,$i\n”;
if ($count > 0) { ###skip first line
printXML();
}
$count++
#print join(’,', @$row), “\n”;
}
}

print “\n”;
sub printXML {
print “\t\n”;
print “\t\t$a\n” .
“\t\t\n” .
“\t\t$c\n” .
“\t\t$d\n” .
“\t\t$e\n” .
“\t\t$f\n” .
“\t\t$g\n” .
“\t\t

$h\n” .
“\t\t$i\n”;
print “\t\n”
}sub printXMLHeader {
print $cgi->header(-type => ‘application/xml’); # make browser expect xml
#print “\<\?xml version=\”1.0\” encoding=\”UTF-8\”\?>\n”;
}

Greg Finance, Perl

Yahoo Finance Get Industry and Sector using Perl

May 20th, 2008

This script parses yahoo finance an pulls the Industry and sector for any ticker symbol you pass it. I used it to create a stock screener I am working on. Hope it becomes useful for you.


#!c:\perl\bin\perl.exe
use LWP::Simple;
use LWP::UserAgent;
use HTML::TableExtract;

if ($#ARGV != 0) {
print “$#ARGV usage: need to pass in a symbol\n”;
exit;
}
$sym = $ARGV[0];

my $url = “http://finance.yahoo.com/q/in?s=$sym”;
my $capture = get($url);

$te = HTML::TableExtract->new( depth => 2, count => 0 );
#print “$depth,$i\n”;
$te->parse($capture);
my $table = $te->first_table_found;
foreach $ts ($te->tables) {
#print “Table found at “, join(’,', $ts->coords), “:\n”;
foreach $row ($ts->rows)
{
$a = @$row->[0];
$b = @$row->[1];
print “$a $b\n”;
}
}

Greg Finance, Perl

FLEX and Perl Export to Excel

May 1st, 2008

Need to export a Flex Datagrid to Excel CSV?

Here is a link to the Flex code

The flex code will convert the DataGrid to a CSV string. Which you will then post to a cgi….code below.

You can see it in action on my Dividend Reinvestment Tool 

#!/usr/bin/perl
use CGI qw(:standard);
my $cgi = new CGI;
my $count = 0;
use CGI::Carp qw(fatalsToBrowser);
$title=$cgi->param('title');
$html=$cgi->param('htmltable');
$type = $cgi->param('type');
if ($type = "CSV") {
print $cgi->header(-expires=>'now', -type=>'application/x-csv', -content_disposition=>"attachment; filename=$title.csv");
print "$html";
}
else {
print $cgi->header(-expires=>'now', -type=>'application/octet_stream', -content_disposition=>"attachment; filename=$title.xls");
print $cgi->start_html(-title => 'Export'
);
print "$html";
print $cgi->end_html;

Greg FLEX, How-To, Perl