2009-04-05 13 views
3

Ich möchte ein Webformular mit Perl ausfüllen. Ich habe Probleme, die richtige Syntax dafür zu finden. Wie in, wie gehe ich zu der URL, wählen Sie das Formular, füllen Sie das Formular aus, und drücken Sie dann die Eingabetaste, um sicherzustellen, dass es eingereicht wurde?Wie kann ich Webformulare mit Perl ausfüllen?

Antwort

0

Antrag der Aktion URL des Formulars mit Net::HTTP oder etwas (kann das genaue Modul nicht erinnern), und schließen Sie die Formulare Felder als GET/POST Parameter (je nachdem, was die Form fordert).

6

WWW::Mechanize und seine Freunde sind der Weg zu gehen. Es gibt einige Beispiele in Spidering Hacks, aber Sie finden auch viel mehr, indem Sie nach dem Modulnamen googlen.

Viel Glück :)

+0

Gibt es irgendetwas, das mir ein Array mit allen Formularfeldern geben würde? Ich schaue mir die WWW :: Mechanize Form und Feldmethoden an, und ich sehe nichts. – Abdul

+0

Die Dinge, die ein Formular auswählen, geben ein HTML :: Form-Objekt zurück. Das ist es, was Sie verwenden, um das Formular zu überprüfen. –

+0

Das Array, nach dem ich suche, kommt von '@inputs = $ form-> inputs'. Vielen Dank! – Abdul

0

HTML::Form funktioniert gut, auch.

Die Synopse des Moduls ist ein hervorragendes Beispiel:

use HTML::Form; 
$form = HTML::Form->parse($html, $base_uri); 
$form->value(query => "Perl"); 

use LWP::UserAgent; 
$ua = LWP::UserAgent->new; 
$response = $ua->request($form->click); 
2

Beginnen Sie mit WWW :: Mechanize :: Shell:

perl -MWWW::Mechanize::Shell -e shell 
get http://some/page 
fillout 
... 
submit 

Danach Typ "Skript" und generierte Code speichern als something.pl - und das war's. Es ist fertig.

Verwandte Themen