Hallo, Am Thu, 13 Oct 2005, Michael Raab schrieb:
am Donnerstag, 13. Oktober 2005 00:57 schrieb David Haller: [..]
LWP zu verwenden ist eigentlich recht simpel. [..] Fuer Babelfish z.B.:
use LWP::UserAgent; my $response = LWP::UserAgent->new()->post( 'http://babelfish.altavista.com/babelfish/tr', { doit => 'done', urltext => $text, lp => 'de_en' }, );
'doit', 'urltext' und 'lp' sind die Parameter die von Babelfish so verwendet/vorgegeben werden...
Und in $response steht dann das Ergebnis?
Nein. LWP::UserAgent::post liefert ein HTTP::Response Objekt zurueck (siehe 'perldoc HTTP::Response'). Um den Content (Server-Antwort ohne HTTP-Header) zu bekommen musst du die content()-Methode verwende. Also z.B.: print $response->content() if $response; oder print $response->decoded_content( { charset => 'iso-8859-15' } ) if $response; Das HTML wirst du z.B. mit 'HTML::Parser' los. ==== UNGETESTET! ==== #!/usr/bin/perl -w use strict; use LWP::UserAgent; use HTML::Parser; use Text::Wrap; $Text::Wrap::columns = 68; sub handle_text { print wrap(" ", "", shift); } my $parser = HTML::Parser->new(text_h => [ \&handle_text , "dtext"]); $parser->unbroken_text(1); my $ua = LWP::UserAgent->new(); my $text = "Dies ist ein Testtext, den Babelfish übersetzen soll"; my $response = $ua->post( 'http://babelfish.altavista.com/babelfish/tr', { doit => 'done', urltext => $text, lp => 'de_en' }, ); $parser->parse( $response->content() ) if $response; 1; ==== Da fehlt natuerlich noch einiges an Fehlerbehandlung u.a.m. HTH, -dnh -- Wenn der Mailserver platzt, werden halt nochmal 80 GB dazugesteckt. Ist billiger als die Arbeitszeit zum Aufräumen. -- Marc Haber