Neues in der Kategorie LWP

HTML-Display-File_Vorschau.png Dank HTML::Display von Max Maischein lassen sich einzelne HTML-Seiten ganz einfach von Perl aus zum Browser schicken und in diesem anzeigen.

Extrem praktisch, wenn man z.B. einen dynamischen generierten Report als HTML-Datei speichern und diesen gleich im lokalen Browser anzeigen lassen möchte. Fast schon eine Fernsteuerung für Browser.

HTML::Display funktioniert auf den gängigen Betriebssystemem mit den meisten Browsern, wie z.B. Internet Explorer oder Firefox. Bisher habe ich es allerdings nur mit Windows XP SP3 und Ubuntu 8.04 ausprobiert.

 

 

Beispiel: lokale HTML-Datei zum Browser des Users senden

#!/usr/bin/perl
use strict;
use warnings;

use HTML::Display;

my $browser = HTML::Display->new() or die $!;
warn "# Displaying HTML using " . ref $browser;

my $location = "index.html";

display(  file => $location ) ;

Die dazugehörige HTML-Datei index.html im selben Verzeichnis.

<html>
<head>
<title>
HTML-Display rocks
</title>
</head>
<body>
<h1>HTML-Display rocks</h1>
<p>
Lorem ipsum dolor sit amet, consetetur sadipscing elitr, 
sed diam nonumy eirmod tempor invidunt ut labore et 
dolore magna aliquyam erat, sed diam voluptua. At vero 
eos et accusam et justo duo dolores et ea rebum. Stet 
clita kasd gubergren, no sea takimata sanctus est Lorem 
ipsum dolor sit amet.
</p>
<p>
Duis autem vel eum iriure dolor in hendrerit in vulputate velit 
esse molestie consequat, vel illum dolore eu feugiat nulla 
facilisis at vero eros et accumsan et iusto odio dignissim qui 
blandit praesent luptatum zzril delenit augue duis dolore te 
feugait nulla facilisi. Lorem ipsum dolor sit amet, consectetuer 
adipiscing elit, sed diam nonummy nibh euismod tincidunt ut 
laoreet dolore magna aliquam erat volutpat.
</p>
</body>
</html>

 

Beispiel: Webseite zum Browser des Users senden

Dazu wird zunächst die Website mit LWP::Simple geholt und dann an HTML::Display weitergereicht.

#!/usr/bin/perl
use strict;
use warnings;

use HTML::Display;
use LWP::Simple;

my $browser = HTML::Display->new();
warn "# Displaying HTML using " . ref $browser;

my $location = "http://perl-howto.de/";

my $html = get $location;

display( html => $html, location => $location ) ;

 

Siehe auch

Mit Finance::QuoteHist von Matt Sisk lassen sich historische Börsenkursdaten (Stock Quotes) einfach über das Web abrufen.

Beispiel: Historische Dax-Kurse von Yahoo! Finance

#!/usr/bin/perl 
use strict;
use warnings;
use Finance::QuoteHist::Yahoo;

my $q = Finance::QuoteHist::Yahoo->new
     (
      			#symbols    => [qw(IBM UPS AMZN)],
      			#Adidas
      			#symbols    => [qw(ADS.DE)],
      symbols    => [qw(^GDAXI)],
      start_date => '01/01/1999',
      end_date   => 'today',
     );

  # Einfache Ausgabe der Ergebnisse 
foreach my $quote ( $q->quotes() ) {
	my ($symbol, $date, $open, $high, $low, $close, $volume, $adjusted) = @$quote;
	print "$symbol startete am $date mit $open und schloss zu $close ($adjusted).\n";
}

Das Programm erzeugt folgende Ausgabe:

^GDAXI startete am 1999/01/04 mit 4991.9500 und schloss zu 5252.3600 (5252.3600).
^GDAXI startete am 1999/01/05 mit 5221.4300 und schloss zu 5253.9100 (5253.9100).
^GDAXI startete am 1999/01/06 mit 5328.0200 und schloss zu 5443.6200 (5443.6200).
^GDAXI startete am 1999/01/07 mit 5485.6100 und schloss zu 5323.2100 (5323.2100).
......
^GDAXI startete am 2009/06/11 mit 5039.9700 und schloss zu 5107.2600 (5107.2600).
^GDAXI startete am 2009/06/12 mit 5098.0100 und schloss zu 5069.2400 (5069.2400).
^GDAXI startete am 2009/06/15 mit 5051.3500 und schloss zu 4889.9400 (4889.9400).
^GDAXI startete am 2009/06/16 mit 4899.8100 und schloss zu 4890.7200 (4890.7200).

 

Siehe auch

Finance::YahooQuote von Dirk Eddelbuettel vereinfacht die Ermittlung der Börsenkurse von Yahoo! Finance und dient als Grundlage für den graphischen Stockticker SMTM.

DAX.png

Beispiel: Aktueller Stand des DAX

#!/usr/bin/perl 
use strict;
use warnings;

use Finance::YahooQuote;

my $symbol = '^GDAXI';

my @quote = getonequote $symbol; # Get a quote for a single symbol

if (scalar @quote) {
	print " 0 Symbol: $quote[0]\n";
	print " 1 Company Name: $quote[1]\n";
	print " 2 Last Price: $quote[2]\n";
	print " 3 Last Trade Date: $quote[3]\n";
	print " 4 Last Trade Time: $quote[4]\n";
	print " 5 Change: $quote[5]\n";
	print " 6 Percent Change: $quote[6]\n";
	print " 7 Volume: $quote[7]\n";
	print " 8 Average Daily Vol: $quote[8]\n";
	print " 9 Bid: $quote[9]\n";
	print "10 Ask: $quote[10]\n";
	print "11 Previous Close: $quote[11]\n";
	print "12 Today's Open: $quote[12]\n";
	print "13 Day's Range: $quote[13]\n";
	print "14 52-Week Range: $quote[14]\n";
	print "15 Earnings per Share: $quote[15]\n";
	print "16 P/E Ratio: $quote[16]\n";
	print "17 Dividend Pay Date: $quote[17]\n";
	print "18 Dividend per Share: $quote[18]\n";
	print "19 Dividend Yield: $quote[19]\n";
	print "20 Market Capitalization: $quote[20]\n";
	print "21 Stock Exchange: $quote[21]\n";
} 
else {
	print "Ooops\n";
}

Das Programm erzeugt folgende Ausgabe:

 0 Symbol: ^GDAXI
 1 Company Name: DAX
 2 Last Price: 5107.26
 3 Last Trade Date: 6/11/2009
 4 Last Trade Time: 11:45am
 5 Change: +56.08
 6 Percent Change: +1.11%
 7 Volume: 0
 8 Average Daily Vol: 0
 9 Bid: N/A
10 Ask: N/A
11 Previous Close: 5051.18
12 Today's Open: 5039.97
13 Day's Range: 5038.03 - 5120.87
14 52-Week Range: 3588.89 - 6855.84
15 Earnings per Share: N/A
16 P/E Ratio: N/A
17 Dividend Pay Date: N/A
18 Dividend per Share: N/A
19 Dividend Yield: N/A
20 Market Capitalization: N/A
21 Stock Exchange: XETRA

Beispiel: Aktueller Kurs der adidas Aktie

Durch useExtendedQueryFormat können weitere Felder, wie Earnings per Share, ermittelt werden:

#!/usr/bin/perl 
use strict;
use warnings;

use Finance::YahooQuote;

my $symbol = 'ADS.DE';

useExtendedQueryFormat(); 

my @quote = getonequote $symbol; # Get a quote for a single symbol

if (scalar @quote) {
	print " 0 Symbol: $quote[0]\n";
	print " 1 Company Name: $quote[1]\n";
	print " 2 Last Price: $quote[2]\n";
	print " 3 Last Trade Date: $quote[3]\n";
	print " 4 Last Trade Time: $quote[4]\n";
	print " 5 Change: $quote[5]\n";
	print " 6 Percent Change: $quote[6]\n";
	print " 7 Volume: $quote[7]\n";
	print " 8 Average Daily Vol: $quote[8]\n";
	print " 9 Bid: $quote[9]\n";
	print "10 Ask: $quote[10]\n";
	print "11 Previous Close: $quote[11]\n";
	print "12 Today's Open: $quote[12]\n";
	print "13 Day's Range: $quote[13]\n";
	print "14 52-Week Range: $quote[14]\n";
	print "15 Earnings per Share: $quote[15]\n";
	print "16 P/E Ratio: $quote[16]\n";
	print "17 Dividend Pay Date: $quote[17]\n";
	print "18 Dividend per Share: $quote[18]\n";
	print "19 Dividend Yield: $quote[19]\n";
	print "20 Market Capitalization: $quote[20]\n";
	print "21 Stock Exchange: $quote[21]\n";
	print "22 Short ratio: $quote[22]\n";
	print "23 1yr Target Price: $quote[23]\n";
	print "24 EPS Est. Current Yr: $quote[24]\n";
	print "25 EPS Est. Next Year: $quote[25]\n" ;
	print "26 EPS Est. Next Quarter: $quote[26]\n";
	print "27 Price/EPS Est. Current Yr: $quote[27]\n";
	print "28 Price/EPS Est. Next Yr: $quote[28]\n";
	print "29 PEG Ratio: $quote[29]\n";
	print "30 Book Value: $quote[30]\n";
	print "31 Price/Book: $quote[31]\n";
	print "32 Price/Sales: $quote[32]\n";
	print "33 EBITDA: $quote[33]\n";
	print "34 50-day Moving Avg: $quote[34]\n";
	print "35 200-day Moving Avg: $quote[35]\n";
} 
else {
	print "Ooops\n";
}

Das Programm erzeugt folgende Ausgabe:

 0 Symbol: ADS.DE
 1 Company Name: ADIDAS
 2 Last Price: 27.88
 3 Last Trade Date: 6/11/2009
 4 Last Trade Time: 11:35am
 5 Change: +0.17
 6 Percent Change: +0.61%
 7 Volume: 1324113
 8 Average Daily Vol: 1747360
 9 Bid: 27.80
10 Ask: 27.84
11 Previous Close: 27.71
12 Today's Open: 27.59
13 Day's Range: 27.48 - 28.30
14 52-Week Range: 21.22 - 45.12
15 Earnings per Share: 0.00
16 P/E Ratio: N/A
17 Dividend Pay Date: N/A
18 Dividend per Share: 0.50
19 Dividend Yield: 1.80
20 Market Capitalization: N/A
21 Stock Exchange: XETRA
22 Short ratio: N/A
23 1yr Target Price: N/A
24 EPS Est. Current Yr: 0.00
25 EPS Est. Next Year: 0.00
26 EPS Est. Next Quarter: 0.00
27 Price/EPS Est. Current Yr: N/A
28 Price/EPS Est. Next Yr: N/A
29 PEG Ratio: N/A
30 Book Value: 0.00
31 Price/Book: N/A
32 Price/Sales: N/A
33 EBITDA: 0
34 50-day Moving Avg: 26.7369
35 200-day Moving Avg: 26.1586

Siehe auch

Über dieses Archiv

Diese Seite enthält aktuelle Einträge der Kategorie LWP.

Linux ist die vorherige Kategorie.

Profiler ist die nächste Kategorie.

Aktuelle Einträge finden Sie auf der Startseite, alle Einträge in den Archiven.

Perl Suchmaschine

Blog Roll

Powered by Movable Type 4.1