Schrift
Wiki:Tipp zum Debugging: use Data::Dumper; local $Data::Dumper::Useqq = 1; print Dumper \@var;
[thread]13039[/thread]

Aktion mit einer Website über deren Formular (Seite 2)

Leser: 24


<< |< 1 2 3 4 >| >> 31 Einträge, 4 Seiten
renee
 2009-01-24 16:25
#118288 #118288
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Das Formular muss man nicht auswählen wenn die Felder im ersten Formular auf der Seite sind.

@iPerl: Hast Du Dir den Inhalt des Mechanizers angeschaut? Bist Du sicher, dass die richtige Seite geladen wurde?
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/
iPerl
 2009-01-24 17:28
#118290 #118290
User since
2009-01-22
15 Artikel
BenutzerIn
[default_avatar]
ja ich bin mir sicher.

Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
#!/usr/local/bin/perl




use WWW::Mechanize;

my $datei = 'C:\Dokumente und Einstellungen\Username\Desktop\QuelleCode.txt';

my $name = 'username';
my $value = 'E-Mail Adresse';
my $name2 = 'password';
my $value2 = 'Geheim';




   my $mech = WWW::Mechanize->new( autocheck => 1 );
        
      $mech->get( "http://web.de/fm/" );
         $inhalt = $mech->content;

             open(FILE,">$datei");
             print FILE "$inhalt";

 
$mech->field( $name, $value);
$mech->field( $name2, $value2);


Ich will mich automatisch auf Web.de einloggen.
Dazu benutz ich web.de/fm damit gleich dieses FreeMail Einloggfeld aktiv wird.
Der Quellcode ist richtung und enthält die beiden Forms.

Trotzdem kommt:

No such field 'username' at C:/Perl/lib/WWW/Mechanize.pm line 1247
No such field 'password' at C:/Perl/lib/WWW/Mechanize.pm line 1247

Grüße

GwenDragon
 2009-01-24 17:45
#118291 #118291
User since
2005-01-17
14608 Artikel
Admin1
[Homepage]
user image
Wenn du bitte in den Quelltext der Website schaust, es ist eben NICHT das erste Formular!
Wie ich schon sagte, du musst das auch auswählen.
murphy
 2009-01-24 17:46
#118292 #118292
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
iPerl+2009-01-24 16:28:14--
[...]
Trotzdem kommt:

No such field 'username' at C:/Perl/lib/WWW/Mechanize.pm line 1247
No such field 'password' at C:/Perl/lib/WWW/Mechanize.pm line 1247
[...]


Vielleicht kommt WWW::Mechanize ja durcheinander, weil die Eingabefelder in dieser Webseite jeweils sowohl ein name als auch ein id Attribut haben. Wenn mich nicht alles taeuscht, ist das auch kein korrektes HTML.

Es waere jedenfalls mal einen Versuch Wert statt der Inhalte der name Attribute, also username und password, die der id Attribute, also inpLoginUsername und inpLoginPasswd zu verwenden.

edit: Abgesehen davon sagt mir der DOM-Inspector vom SeaMonkey auch gerade, dass das Loginformular gar nicht das erste auf der Seite ist, sondern das dritte...
When C++ is your hammer, every problem looks like your thumb.
iPerl
 2009-01-24 17:51
#118293 #118293
User since
2009-01-22
15 Artikel
BenutzerIn
[default_avatar]
@GwenDragon

Wenn ich im HTML Code nach "password" suche ist der 1. Anschlag bei dem Nameattribut von der Form.

@murphy

Klappt leider nicht.

Das 3. auf der Seite?
Kannst du das bitte genauer erklären.
GwenDragon
 2009-01-24 17:58
#118295 #118295
User since
2005-01-17
14608 Artikel
Admin1
[Homepage]
user image
iPerl+2009-01-24 16:51:24--
@GwenDragon

Wenn ich im HTML Code nach "password" suche ist der 1. Anschlag bei dem Nameattribut von der Form.


Gehe bitte auf web.de/fm/
Sehe dir den Quellcode an.
Suche nach <form
Und du siehst, dass es erst das zweite Formular ist.

murphy
 2009-01-24 18:08
#118296 #118296
User since
2004-07-19
1776 Artikel
HausmeisterIn
[Homepage]
user image
iPerl+2009-01-24 16:51:24--
@murphy
[...]
Das 3. auf der Seite?
Kannst du das bitte genauer erklären.
[...]


Sorry, es ist doch das zweite. Ich habe leider nicht sorgfaeltig genug das DOM angeschaut.

Wenn ich mir das DOM der Seite unter der URL http://web.de/fm im SeaMonkey anschaue, sehe ich, dass die forms Collection des Dokumentenobjektes vier Elemente enthaelt. Im einzelnen sind das

- An Position 0 in der Collection ein Suchformular (allgemein)
- An Position 1 in der Collection ein Loginformular (Webmail)
- An Position 2 in der Collection ein Loginformular (Web.DE Club)
- An Position 3 in der Collection ein Suchformular (Wetter)
When C++ is your hammer, every problem looks like your thumb.
iPerl
 2009-01-24 18:24
#118297 #118297
User since
2009-01-22
15 Artikel
BenutzerIn
[default_avatar]
Tut mir Leid.
Da stand ich wohl auf dem Schlauch.

Vielen Dank an euch beide =)

Klappt wunderbar.
GwenDragon
 2009-01-24 18:38
#118300 #118300
User since
2005-01-17
14608 Artikel
Admin1
[Homepage]
user image
Das DOM ist aber irrelevant, da dieses noch durch Javascript (JS) der Website inder Anordnung verändert worden sein kann.
WWW-Mechanize kann kein JS. Deswegen reicht ein Blick in das HTML der Webseite.
iPerl
 2009-01-25 14:24
#118309 #118309
User since
2009-01-22
15 Artikel
BenutzerIn
[default_avatar]
So, bin jetzt schon ein Stück weiter =)

Nun möchte ich mich jedesmal wenn das Skript durch ist ausloggen.
Im QUelltext siet dies so aus:

Code: (dl )
</b>&nbsp;-&nbsp;<a href="/?si=12SUk.1lr3T0.1mTjfb.19*&rv_logoff=true"  target="_parent" ><b>Logout</b></a>


Wie, spreche ich soetwas mit Mechanize an?

Wer selber den Quelltext durchkucken will:

Loggt eich auf Web.de ein. Deaktiviert die Frame und dann ist Rechts Oben ein anklickbarer Text "Logout".

Danke =)
<< |< 1 2 3 4 >| >> 31 Einträge, 4 Seiten



View all threads created 2009-01-22 17:05.