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

Hilfe bei LWP::UserAgent

Leser: 3


<< |< 1 2 >| >> 18 Einträge, 2 Seiten
jogi
 2007-08-07 14:38
#97642 #97642
User since
2007-07-25
55 Artikel
BenutzerIn
[default_avatar]
Hallo!

Ich möchte in $content mittels RegEx nach "Oder warte x Minuten." und "Kein Premium-User" suchen. In einem Testscript funktionieren beide RegEx. Hier aber nicht:

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
#!/usr/bin/perl -w

use strict;

use LWP::UserAgent;

my $ua = LWP::UserAgent->new();

$ua->proxy(['http', 'ftp'], 'http://127.0.0.1:8118/');

my $url = 'http://rs208.rapidshare.com/files/47486343/PowerOptions.pdf';

my $request = HTTP::Request->new('GET', $url);

my $response = $ua->request($request);

my $content;
if ( $response->is_error() ) { 
        print "Error-Code    : ", $response->code() ,    "\n";
    print "Fehlermeldung:  ", $response->message() , "\n";
}
else {
        $content = $response->content();
}

if ( $content =~ /\(\w+\s\w+\s(.*)\s\w+\)/i ) {
        print "Oder warte $1 Minuten.";
}

elsif ( $content =~ /Kein Premium-User/i ) {
        print "Kein Premium-User\n";
}

Wer kann mir sagen wo der Hund begraben liegt?

jogi
renee
 2007-08-07 15:00
#97649 #97649
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Hast Du schonmal überprüft, was in $content drinsteckt?
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/
jogi
 2007-08-07 15:02
#97650 #97650
User since
2007-07-25
55 Artikel
BenutzerIn
[default_avatar]
Ja, dort drin steht der Quellcode der HTML-Seite.
jogi
 2007-08-07 15:13
#97652 #97652
User since
2007-07-25
55 Artikel
BenutzerIn
[default_avatar]
Achso! Ich hab in meinem Browser Deutsch als bevorzugte Sprache gewählt. Das Script wird warscheinlich die Englischsprachige Seite serviert bekommen.
jogi
 2007-08-07 15:21
#97653 #97653
User since
2007-07-25
55 Artikel
BenutzerIn
[default_avatar]
Geht trotzdem nicht.

http://rs208.rapidshare.com/files/47486343/PowerOp...

Wenn ich auf diese Seite gehe ist dort ein Formular. Hinter "Free" steckt die Seite die ich durchsuchen möchte. Wie komme ich denn jetzt dort hin?
renee
 2007-08-07 15:26
#97654 #97654
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Wenn Du dem Link folgst, siehst Du, dass dort Deine Regulären Ausdrücke nicht matchen können, weil dort der Text gar nicht vorkommt. Du musst noch den Klick auf den "Free"-Button simulieren!
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/
jogi
 2007-08-07 15:30
#97703 #97703
User since
2007-07-25
55 Artikel
BenutzerIn
[default_avatar]
Code: (dl )
Du musst noch den Klick auf den "Free"-Button simulieren!

Wie geht das?
renee
 2007-08-07 15:32
#97704 #97704
User since
2003-08-04
14371 Artikel
ModeratorIn
[Homepage] [default_avatar]
Am einfachsten mit LiveHttpHeaders im Firefox anschauen, welche Requests abgesetzt werden und die nachbauen. Oder Du nimmst CPAN:WWW::Mechanize. Dort gibt es extra Methoden, die so etwas für Dich übernehmen...
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/
jogi
 2007-08-07 16:12
#97710 #97710
User since
2007-07-25
55 Artikel
BenutzerIn
[default_avatar]
Oki, Danke.
jogi
 2007-08-07 21:12
#97737 #97737
User since
2007-07-25
55 Artikel
BenutzerIn
[default_avatar]
Ich kann keinen Header hinzufügen. Mein Code ergiebt:

Code: (dl )
1
2
3
4
5
6
7
8
9
10
11
12
E:\perl>perl mech.pl
Bareword "Accept" not allowed while "strict subs" in use at mech.pl line 8.
Execution of mech.pl aborted due to compilation errors (#1)
(F) With "strict subs" in use, a bareword is only allowed as a
subroutine identifier, in curly brackets or to the left of the "=>"
symbol. Perhaps you need to predeclare a subroutine?

Uncaught exception from user code:
Bareword "Accept" not allowed while "strict subs" in use at mech.pl line
8.
Execution of mech.pl aborted due to compilation errors.
at mech.pl line 17


Code (perl): (dl )
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
#!/usr/bin/perl -w
use strict;
use diagnostics;
use Data::Dumper;
use WWW::Mechanize;

my $mech = WWW::Mechanize->new;
$mech->add_header( Accept-Language => 'de');
$mech->get('http://www.rapidshare.com/files/47486343/PowerOptions.pdf');

$mech->submit_form(
    button    => 'dl.start',
);

print $mech->content;

print "Drin!\n" if $mech->content =~ /blablabla/;


Ich möchte die Deutschsprachige Version der Seite bekommen. Was stimmt denn mit meinem Code nicht?
<< |< 1 2 >| >> 18 Einträge, 2 Seiten



View all threads created 2007-08-07 14:38.