Du befindest dich hier: FSI Informatik » Informationen » linuxkurs » Aufgabensammlung » Mensaskript (Übersicht)
Dies ist eine alte Version des Dokuments!
Mensaskript
Schreiben wir nun ein etwas praktischeres Script:
#!/usr/bin/perl use v5.12; use strict; use warnings; use utf8; use open qw( :std :locale ); use HTML::TreeBuilder (); use WWW::Mechanize (); my $URL = 'http://www.werkswelt.de/?id=sued'; sub get_food { my ($html) = @_; foreach my $line (split /\n/, $html) { next unless $line =~ /^Speiseplan <br>/; $line =~ m{<h4>(.+?)</h4>} or die; say $1; while ($line =~ m{(Essen \d+)</br>(.+?)</br>}g) { my $food = $1; my $name = $2; $name =~ s{<sup>.+?</sup>}{}g; $name =~ s{\s+}{ }g; say " $food: $name"; } } } my $mech = WWW::Mechanize->new; $mech->get($URL); get_food($mech->content); for (my $i = 0; $i < 2; $i++) { my $next = $mech->current_form->find_input(undef, 'submit', 3); $mech->click_button(input => $next); get_food($mech->content); }
Dieses Perl-Skript lädt den Mensaspeiseplan aus dem Internet und filtert mit einem regulären Ausdruck (wie grep!) den aktuellen Plan heraus.
Sinnvollerweise sollte das Script als mensa
im Verzeichnis ~/bin
gespeichert werden und so wie oben ausführbar gemacht werden (Rechte!). Nun kannst du jeden Tag mittels mensa
den Mensa-Speiseplan anschauen.