Thread Problem mit Script
(10 answers)
Opened by roest at 2009-08-24 22:53
Hallo Zusammen.
Ich habe von einer Website ein Script heruntergeladen welches Automatisch auf Pinnwände von Spickmich spammt. Nur leider ist es etwas verbuggt. Es Spammt immer zuerst bei allen meinen Freunden die Online sind -->doof Es Spammt immer zweimal (auf der Pinnwand kommt es nur an weil man so schnell hintereinander keinen Eintrag machen kann. Das mit dem bei xyz wurden schon auf die Pinnwand getextet funktioniert nicht. Mal nach 20 und mal nach 100 Einträgen kommt die Error meldung: There is no form nubered 2 at [pfad]/pinnwandspam.pl line 120 There is no form nubered 2 at C://Perl//site/lib/WWW/Mechanize.pm line 1830 Ich vermute mal stark er findet das Formular welches er ausfüllen soll nichtmehr weil er keinen User selectiert hat. Naja das ist doof weil manchmal nimmter er nur die 20 User von der Startseite aus der "Wer ist gerade online" und manchmal das Ziel was ich glaube ausgewählt zu haben. Ich glaube weiterhin ich kann mit dieser funktion beeinflussen wohin er spammen soll, klappen tut das aber nur manchmal: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 sub UsersFromMainpage{ my @users; $agent->get("http://www.spickmich.de/club/dce946a1b98e? #hier denke ich showMembers&p=3"); foreach($agent->links()){ $_->url() =~ /\/profil\/([^\?\/]*)/; # Benutzernamen aus der Profil-URL holen push(@users, $1) if(defined $1); # und an @users anhängen } return(@users); } Nungut ich Poste einfach mal den Kompletten Code in der Hoffnung das jemand villeicht ein paar Fehler findet. Es sein noch gesagt das ich selber kein Perl kann mich aber ausgiebig mit php, sql etc beschäftigt habe und desshalb ein bisschen was verstehe. Ich danke für die Hilfe mfg roest 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 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 #!/usr/bin/perl use strict; use WWW::Mechanize; use WWW::Mechanize::Link; # Konfiguration my $usermail = "MEINE EMAIL"; # E-Mail-Adresse, die zum LogIn verwendet wird my $password = "MEIN PASSWORT"; # Passwort my $message = "SPAMMTEXT"; # Text, der Auf die Pinnwände geschrieben wird my $username = "MEIN NICKNAME"; # Dein Profilname my $entries = 200; # Anzahl der zu verschickenden Einträge # Weitere Globale Variablen my @queue; my $written = 0; my @done; my $agent = WWW::Mechanize->new(); $agent->agent_alias('Windows Mozilla'); # Durch 'Windows IE 6' oder 'Windows Mozilla' ersetzen $agent->get("http://www.spickmich.de/club/dce946a1b98e?showMembers&p=3"); # Einloggen $agent->submit_form( form_number => 1, fields => { usermail => $usermail, userpwd => $password, }); @queue = UsersFromMainpage(); while($written < $entries){ while($#queue > 0 && $written < $entries){ my $curuser = shift(@queue); if(MessageWrite($curuser) == 0){ print("Bei ".$curuser." besteht schon ein Eintrag\n"); push(@done, $curuser); } else { print("Nr. ".$written." Auf Pinnwand von ".$curuser." geschrieben\n"); push(@done, $curuser); $written++; } } @queue = UsersViaFriends(pop(@done)); } # Ausloggen $agent->submit_form( form_number => 1, fields => { action => 'logout', }); sub UsersFromMainpage{ my @users; $agent->get("http://www.spickmich.de/club/dce946a1b98e?showMembers&p=3"); foreach($agent->links()){ $_->url() =~ /\/profil\/([^\?\/]*)/; # Benutzernamen aus der Profil-URL holen push(@users, $1) if(defined $1); # und an @users anhängen } return(@users); } sub UsersViaFriends { my $user = shift; my @users; my $pre; $agent->get("http://spickmich.de/profil/".$user); $agent->find_link(url_regex=>qr/\/nachrichten\//)->url() =~ /\/nachrichten\/(.*)/; # User-ID herausfinden $agent->get("http://spickmich.de/profil/".$1); foreach($agent->links()){ $_->url() =~ /\/profil\/([^\?\/]*)/; # Benutzernamen aus der Profil-URL holen push(@users, $1) if(defined $1 && !($1 eq $pre)); # und an @users anhängen $pre = $1; } return(@users); } sub MessageWrite { my $user = shift; $agent->get('http://spickmich.de/profil/'.$user); if($agent->content() =~ /Pinnwand.+\/profil\/$username/){ return 0; } else { # Auf Pinnwand schreiben $agent->submit_form( form_number => 2, fields => { wallPostText => $message, }); return 1; } } Last edited: 2009-08-25 08:18:40 +0200 (CEST) |