Hallo Freunde,
ich habe gestern an meinem Spider gecodet und wollte den Linktext einiger Links mit WWW::Mechanize extrahieren.
Leider war mir das nicht möglich da $mech->find_link () bzw. $mech->find_all_links() nicht funktioniert wenn man css-Klassen zum auffinden verwendet.
In der Beschreibung 
http://search.cpan.org/~ether/WWW-Mechanize-1.73/l... steht, dass man das so schreibt.
$mech->find_link ( class => string )
$mech->find_all_links( class => string )
Wenn meine Klasse nun "testklasse" heißt, schreibt man ...
$mech->find_link ( class => 'testklasse' )
$mech->find_all_links( class => 'testklasse' )
Aber leider findet WWW::Mechanize den Link einfach nicht.
Verwende ich $mech->find_all_links() ohne spezielle Klassenangabe, werden mir alle Links angezeigt.
Ich habe dann einfach mal eine html-Seite - mit einem einzigen Link angelegt.
Testseite
Mein Script lautet dann folgendermaßen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#!/usr/bin/perl
use warnings;
use strict;
use WWW::Mechanize;
my $mech = WWW::Mechanize->new();
$mech->timeout(30);
$mech->agent_alias('Windows Mozilla');
$mech->get('http://www.lirix.de/unbenannt.html');
my $test = $mech->find_link( class => 'testklasse' );
say $test;
#ODER
for my $test2 ($mech->find_all_links(class => "testklasse")) {
say $test2->text;
}
}
 
Die Variable ist aber immer leer - es ist nichts zu machen - WWW::Mechanize findet die Links nicht - egal wo ich es versuche [ich habe das bei mehreren URLs getestet].
Habt ihr auch dieses Problem oder mache ich hier etwas falsch?
Danke und Gruß
Matthias
modedit Editiert von GwenDragon: Titel geändert
Last edited: 2014-09-20 13:39:12 +0200 (CEST)