Schrift
[thread]10132[/thread]

mechanize und XHTML-Seiten



<< |< 1 2 >| >> 11 Einträge, 2 Seiten
pepeB
 2007-08-19 20:29
#98386 #98386
User since
2007-08-17
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

als Neuling in der perl-community habe ich doch gleich mal ein Problem:

Ich habe ein perl-Skript übernommen, das mit Hilfe von Mechanize Webseiten aufruft, Links nachfolgt und Forms ändert und abschickt.
Funktioniert alles prima.
Jetzt haben die Web-Programmierer aber auf XHTML umgestellt und das Ausfüllen der Forms klappt nicht mehr.
Seiten auswerten und Buttons drücken ist nach wie vor kein Problem.

Weiss jemand Rat?
Liebe Gruesse aus dem Schwabenland

Peter

Wegen Umzug komme ich nur ab und zu zum Antworten.
renee
 2007-08-20 10:53
#98400 #98400
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Gibt es Fehlermeldungen? Hast Du überprüft, ob die Formularfelder noch die gleichen Namen haben?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
pepeB
 2007-08-20 13:35
#98408 #98408
User since
2007-08-17
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
Das neue Formular unter XHTML sieht in etwa so aus wie unten.
Die Felder, in die Werte geschrieben werden, heissen jedesmal "value".
Wie da der Antwortstring aus XHTML heraus gebildet wird, das weiss ich bis jetzt noch nicht.

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
...
<form name="kontaktdaten" action="-/de_DE/kunden_check.html;jsessionid=1234567890" method="post">
<div class="form">

<label>Vorname</label>
<input type="text" class="normI" name="Addresse:in:firstname" id="firstname" value="Peter" maxlength="29"/>
<br class="clear" />

<label>Nachname</label>
<input type="text" class="normI" name="Addresse:in:lastname" id="lastname" value="Broll" maxlength="27"/>
<br class="clear" />

<label>e-Mail</label>
<input type="text" class="normI" name="Addresse:in:email" id="email" value="mail@meineurl.de" maxlength="60"/>
<br class="clear" />

<input type="hidden" name="Seite" value="123">
<div class="btright">
<input type="submit" name="abbrechen" value="Abbrechen" />
<input type="submit" name="speichern" value="Speichern" />
</div>
</div>
</form>


Gibt's vielleicht was anderes als 'mechanize'
Liebe Gruesse aus dem Schwabenland

Peter

Wegen Umzug komme ich nur ab und zu zum Antworten.
renee
 2007-08-20 15:52
#98422 #98422
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Die Felder heißen *nicht* "value"... Der name ist bei dem Attribut "name" angegeben (z.B. name="Addresse:in:lastname"). Werden diese Namen auch im Skript verwendet? Hießen die Felder früher auch so?
OTRS-Erweiterungen (http://feature-addons.de/)
Frankfurt Perlmongers (http://frankfurt.pm/)
--

Unterlagen OTRS-Workshop 2012: http://otrs.perl-services.de/workshop.html
Perl-Entwicklung: http://perl-services.de/
sh
 2007-08-20 16:46
#98428 #98428
User since
2007-08-20
1 Artikel
BenutzerIn
[default_avatar]
Hi,

was ich immer gut finde, ist die Seite mit CPAN:WWW::Mechanize::Shell abzu"surfen".

Wenn Du dann da bist, wo Du hinwillst (d.h. wenn Dein Formular ausgefüllt ist) zaubert Dir der Befehl "script surfme.pl" ein Perl-Skript, welches genau das tut, was Du in CPAN:WWW::Mechanize::Shell gerade interaktiv getan hast. Das sollte dann anpassbar sein...

Viel Glück,
Sven
pepeB
 2007-08-26 09:10
#98670 #98670
User since
2007-08-17
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo,

Ich habe unter 'mechanize' alle möglichen Varianten getestet, nix hat funktioniert.
Das Problem liegt wohl daran, dass mechanize nicht den erforderlichen XHTML-Antwort-String generiert.
Ich habe auf den mechanize-Seiten irgendwo gelesen (bzw. so interpretiert), dass der Entwickler sich an XHTML versucht hat, die Funktionen aber deaktiviert hat, das sie fehlerhaft waren. Wohl doch nicht so trivial.

Früher war alles besser (anders) ;-)))

Da lautete der form-code noch etwa so:
Code: (dl )
<input type="text" size="35" maxlength="60" name="lastname">


und konnte prima verarbeitet werden.

Liebe Grüße,

Peter

Wegen Umzug komme ich nur ab und zu zum Antworten.
Liebe Gruesse aus dem Schwabenland

Peter

Wegen Umzug komme ich nur ab und zu zum Antworten.
pepeB
 2007-08-26 09:18
#98671 #98671
User since
2007-08-17
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo sh,

der Tipp mit WWW::Mechanize::Shell hört sich gut an. :-)

Als Perl-User mit eingeschränktem Wissen hab ich mal versucht, das Modul einzubinden, musste dann noch weitere Module nachladen, bis ich zu einem Modul kam, das Perl 5.8 voraussetzte.
Auf der Maschine, auf der das Skript laufen soll, ist aber nur 5.6
installiert, da hab ich meine Versuche dann abgebrochen.

Ich muss mir zum Testen einen anderen Server suchen.

Danke für den Hinweis.

Wegen Umzug komme ich nur ab und zu zum Antworten.
Liebe Gruesse aus dem Schwabenland

Peter

Wegen Umzug komme ich nur ab und zu zum Antworten.
pepeB
 2007-08-31 14:10
#98922 #98922
User since
2007-08-17
5 Artikel
BenutzerIn
[Homepage] [default_avatar]
Hallo Sven,

sh+2007-08-20 14:46:46--
was ich immer gut finde, ist die Seite mit CPAN:WWW::Mechanize::Shell abzu"surfen".

Wenn Du dann da bist, wo Du hinwillst (d.h. wenn Dein Formular ausgefüllt ist) zaubert Dir der Befehl "script surfme.pl" ein Perl-Skript, welches genau das tut, was Du in CPAN:WWW::Mechanize::Shell gerade interaktiv getan hast. Das sollte dann anpassbar sein...


Es war zwar ziemlich mühsam, das Modul zu installieren. Durch die verschiedenen Abhängigkeiten musste ich über 10 weitere Module installieren.

Aber jetzt hab ich damit mein Problem lösen können. :-)))

Es macht richtig Spass, mit WWW::Mechanize::Shell zu spielen.

Ich erhalte aber oft eine Fehlermeldung:
Code: (dl )
1
2
unknown mode: size
Use of uninitialized value in split at /opt/perlmodules/lib/site_perl/5.6.1/Term/Shell.pm line 385.

Aber es klappt trotzdem.

Vielen Dank für den Tipp.
Liebe Gruesse aus dem Schwabenland

Peter

Wegen Umzug komme ich nur ab und zu zum Antworten.
ptk
 2007-09-01 04:03
#98956 #98956
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
pepeB+2007-08-31 12:10:59--
Es war zwar ziemlich mühsam, das Modul zu installieren. Durch die verschiedenen Abhängigkeiten musste ich über 10 weitere Module installieren.
Kannst du nicht CPAN.pm benutzen?
Gast Gast
 2007-09-02 09:57
#98983 #98983
Hi pkt,

ptk+2007-09-01 02:03:55--
Kannst du nicht CPAN.pm benutzen?

Danke für den Tipp, bei der nächsten Installation wird alles anders ;-))

Da ich mich mit Perl noch nicht so gut auskenne, war mir CPAN.pm bisher nicht bekannt.
Zusätzlich gab es noch ein paar weitere Probleme:
[ul]
[li]Rechner steht in extra Netz, Zugang nur per ssh[/li]
[li]Kein direkter Zugang zum Internet[/li]
[li]Installation in extra Verzeichnis[/li]
[/ul]
Da war ich froh, dass ich das Modul überhaupt zum Laufen gebracht habe.

Nach dem Tipp mit CPAN.pm habe ich den Link http://wiki.perl-community.de/bin/view/Wissensbasis/ModuleWieInstalliereIchEinModul
gefunden, da steht genau drin, was ich gebraucht hätte.
<< |< 1 2 >| >> 11 Einträge, 2 Seiten



View all threads created 2007-08-19 20:29.