2012-04-06 3 views
1

Ich versuche, nur die Testinformationen von einer Webseite zu scrapen, die mit divs, Tags usw. erstellt wurde. Ich möchte nur Informationen aus einer bestimmten div-Klasse extrahieren und wieder nur die Information innerhalb der Tags.Verwenden von Perl Mechanize zum Entfernen von Text von einer Webseite

<div class="col col60 moduledetail"><table cellspacing="2" cellpadding="0" border="0" id="moduleDetail"><tr><th class="moduleCode">test<small>CRN: 33413</small></th><th>test</th></tr><tr><td class="label"><nobr>Campus</nobr></td><td><a target="_blank" href="test/">test</a></td></tr><tr><td class="label"> 

oben ist ein Ausschnitt von dem, was in der Webseite enthalten ist. Mein Versuch, den Seiteninhalt zu bekommen, macht genau das, was er sagt, alles von der Webseite zu bekommen, wie kann ich das auf diese Klasse beschränken und nur die Textinformation innerhalb der Tags.

danke

Antwort

3

Verwenden Sie einen HTML-Parser. Hier ein Beispiel mit HTML::TreeBuilder:

use WWW::Mechanize; 
use HTML::TreeBuilder; 

my $mech = WWW::Mechanize->new; 
$mech->get($url); 

my $tree = HTML::TreeBuilder->new_from_content($mech->content); 

if (my $div = $tree->look_down(_tag => "div", class => "col col60 moduledetail")) { 
    print $div->as_text(), "\n"; 
} 
$tree->delete(); 
Verwandte Themen