Vater und Sohn schrieb:@bsterix
Glaube mir, wenn das sooo einfach wäre, dann hätte ich (oder ein anderer) es schon für GSAK geschrieben.
Du kannst der Gemeinschaft aber den Gefallen tun und eben mal ein kleine Perlscript schreiben...
#!perl -w
$| = 1; #flush ???
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
my @values;
my %option;
open GPXIN, "<$ARGV[2]" or die "kann $ARGV[2] nicht oeffnen";
open LOG, ">gpxgetter.log" or die "kann logfile nicht oeffnen";
my $user = $ARGV[0];
my $passwd=$ARGV[1];
my $id;
my $end;
$id="";
print "GPX-getter fuer $user ($passwd)\n";
$mech->get( 'http://www.geocaching.com/login/' );
#print $mech->content;
die $mech->res->status_line unless $mech->success();
print "-----------Startseite-------------------\n";
#print $mech->content;
print "--------------Log-In--------------------\n";
$mech->set_visible( $user, $passwd ) ;
$mech->click_button(number => 1);
#print $mech->content;
if($mech->content =~ /password combination does not match/m)
{
print "Falscher user/passwort\n";
die "Falscher user/passwort\n";
}
if($mech->content =~ /Welcome,/m ||
$mech->content =~ /You are logged in as/m)
{
# print $mech->content;
print "-------------Eingeloggt-----------------\n";
}
else
{
print LOG $mech->content;
print LOG "unerwartetes Ergebis\n";
die "?? Abruch wg. unerwarteter Antwort. Siehe logfile!\n";
}
while(<GPXIN>)
{
$name=$1 if(/<name>(.*)<\/name>/);
$desc=$1 if(/<desc>(.*)<\/desc>/);
$id=$1 if(/<groundspeak:cache id=\"([0-9]*)\"/);
if(/<groundspeak:container>(.*)<\/groundspeak:container>/)
{
$size=$1;
$cachedesc{$name}="$desc";
$cachesize{$name}="$size";
$cacheid{$name}=$id;
print "$name $cachesize{$name} $cachedesc{$name}\n";
$mech->get( "http://www.geocaching.com/seek/cache_details.aspx?id=$id");
if($mech->content =~ /Click icon to download/m)
{
# print $mech->content;
print "-------------Cache-Seite geladen-----------------\n";
$mech->click_button(name => "btnGPXDL");
print "gpx geladen??\n";
open GPXOUT, ">$name.gpx";
print GPXOUT $mech->content;
close GPXOUT;
}
else
{
print LOG $mech->content;
print LOG "unerwartetes Ergebis\n";
die "?? Abruch wg. unerwarteter Antwort. Siehe logfile!\n";
}
}
}
bsterix schrieb:(Code für ein praktisches Skript gesnippt)
Name "main::cacheid" used only once: possible typo at get_gpx.pl line 66.
GPX-getter fuer xxxxxxxx
-----------Startseite-------------------
--------------Log-In--------------------
Can't locate object method "click_button" via package "WWW::Mechanize" at get_gp
x.pl line 33.
Carsten schrieb:bsterix schrieb:(Code für ein praktisches Skript gesnippt)
WWW-Mechanize hab ich mir per ppm installiert. Funktionieren tut es leider trotzdem nicht. Hast du oder jemand anders einen Tipp?
Code:Name "main::cacheid" used only once: possible typo at get_gpx.pl line 66. GPX-getter fuer xxxxxxxx -----------Startseite------------------- --------------Log-In-------------------- Can't locate object method "click_button" via package "WWW::Mechanize" at get_gp x.pl line 33.
1. ActivePerl-DocTools [0.04] Perl extension for Documentation TOC Gene~
2. ActiveState-Relocat~ [0.03] Relocate a Perl installation
3. ActiveState-Rx [0.60] Regular Expression Debugger
4. Archive-Tar [1.07] Manipulates TAR archives
5. Class-Accessor [0.27] Automated accessor generation
6. Compress-Zlib [1.22] Interface to zlib compression library
7. Data-Dump [1.01] Pretty printing of data structures
8. Digest-HMAC [1.01] Keyed-Hashing for Message Authentication
9. Digest-MD2 [2.03] Perl interface to the MD2 Algorithm
10. Digest-MD4 [1.1] Perl interface to the MD4 Algorithm
11. Digest-Perl-MD5 [1.8] Perl Implementation of Rivest's MD5 algor~
12. Digest-SHA1 [2.06] Perl interface to the SHA-1 Algorithm
13. Email-Address [1.871] RFC 2822 Address Parsing
14. Email-MessageID [1.35] Generate world unique message-ids
15. Email-MIME [1.8] Easy MIME message parsing.
16. Email-MIME-ContentT~ [1.011] Parse a MIME Content-Type Header
17. Email-MIME-Encodings [1.1] A unified interface to MIME encoding and ~
18. Email-MIME-Modifier [1.440] Modify Email::MIME Objects Easily
19. Email-Simple [1.995] Simple parsing of RFC2822 message format ~
20. File-CounterFile [1.01] Persistent counter class
21. Font-AFM [1.18] Interface to Adobe Font Metrics files
22. GD [2.28] Interface to Gd Graphics Library
23. HTML-Parser [3.34] HTML parser class
24. HTML-Tagset [3.03] Data tables useful in parsing HTML
25. HTML-Tree [3.18] build and scan parse-trees of HTML
26. HTTP-Proxy [0.20] A pure Perl HTTP proxy
27. HTTP-Recorder [0.05] record interaction with websites
28. HTTP-Request-Params [1.01] Retrieve GET/POST Parameters from HTTP Re~
29. IO-Zlib [1.01] IO:: style interface to Compress::Zlib
30. libwin32 [0.21] A collection of extensions that aims to p~
31. libwww-perl [5.75] Library for WWW access in Perl
32. MD5 [2.02] Perl interface to the MD5 Algorithm (obso~
33. MIME-Types [1.17] Definition of MIME types
34. PadWalker [1.0] play with other peoples' lexical variables
35. PPM3 [3.1] Perl Package Manager: locate, install, up~
36. SOAP-Lite [0.55] Library for Simple Object Access Protocol~
37. Tk [800.024] A Graphical User Interface Toolkit
38. URI [1.27] Uniform Resource Identifiers (absolute an~
39. Win32-AuthenticateU~ [0.02] Win32 User authentication for domains
40. WWW-Mechanize [1.20] Handy web browsing in a Perl object
41. XML-Parser [2.34] A Perl module for parsing XML documents
42. XML-Simple [2.09] Easy API to read/write XML (esp config fi~
bsterix schrieb:Evtl. hast du eine zu alte (oder falsche?) Version von Mechanize installiert.
Das ActivePerl gibts hier:Roli_29 schrieb:Okay! Ich gebe zu: ich bin doof und habe mich noch nie mit Skripts beschäftigt.
Kann mir jemand mal Schritt für Schritt erklären, was ich instalieren muss (am besten mit Links) um das Skript, wie zum laufen zu bekommen?
Ich kann es gar nicht abwarten es zu testen!
Gruß Roland