Newsgroup: it.comp.lang.perl
Titolo: Links dentro una stringa

Salve, ho ottenuto una stringa contenente una pagina web.
Vorrei sapere come ottenere i links, marcati con:
<A HREF="....">
quello che c'e' dentro le " " dopo HREF, in pratica.
Grazie a chi mi aiutera' :)

 wrote in 
news:Xns93ADAF6CBD4F2G...@193.43.96.1
:

In pratica mi interesserebbe questo:
Data una stringa, anche "multilineare", vorrei ottenere tutti i risultati 
che soddisfano un dato matching. Ad esempio:
/<A HREF="(.+)"/
Vorrei ottenere tutte le occorrenze all'interno della parentesi. E' 
possibile fare qualcosa tipo:
$a = "contenuto del sito in HTML";
@links = /<A HREF="(.+)"/$a/
o qualcosa di simile? :)

 quello che c'e' dentro le " " dopo HREF, in pratica.
http://search.cpan.org/author/GAAS/HTML-Parser-3.28/lib/HTML/LinkExtor.pm
ciao,
Stefano

 
http://search.cpan.org/author/GAAS/HTML-Parser-3.28/lib/HTML/LinkExtor.pm
ho provato, non mi va neanche l'esempio.
Ho la pagina in una stringa, vorrei i links... (vedi l'altro mio followup 
al mio post)

o qualcosa di simile? :)
Se mi spieghi a che cosa è simile quello che hai scritto, magari posso
anche arrivare a suggerirti qualcosa di simile alla cosa simile (che, per
proprietà transitiva delle similitudini, sarà simile a quello che hai
scritto). Per il momento, non riesco minimamente a figurarmi che accidenti
volessi dire.
Suggerisco la lettura di perlretut, e magari anche una rilettura di
perlintro e perlsyn.
Ciao.

 ho provato, non mi va neanche l'esempio.
Forse questo e` piu` simile a quello che ti serve.
----------------------------------------------------------------
use strict;
use warnings;
use HTML::LinkExtor;
use Data::Dumper;
my $html = qq|
   <a href="
www.perl.it
">Perl Mongers Italia</a>
   <a href="
www.pm.org
">Perl Mongers</a>
   <img src="camel.png" />
|;
my $p = HTML::LinkExtor->new();
$p->parse( $html ); # parse() e` un metodo ereditato
                     # da HTML::Parser, di cui
                     # HTML::LinkExtor e` una sottoclasse
foreach my $l ( $p->links() ) {
     print Dumper( $l );
}
----------------------------------------------------------------
ciao,
Stefano

ho provato, non mi va neanche l'esempio.
Riprova, perché questa č evidentemente la strada giusta da seguire, se vuoi
ottenere un risultato affidabile.
Il modulo, garantito, funziona; cerca quindi di aggiustare quello che non
funziona.
Ciao.

 Eeeeeh????
Nel senso, data $a contiene l'intera pagina (una stringa multilineare) e 
il pattern per estrarre i link (<A HREF="(.+)"), voglio ottenere l'array 
contenente i contenuti tra le parentesi del pattern

non mostra niente...
Che strano.... cioè, tu metti una stringa nella variabile $a, esegui il
match sulla variabile $stringa (che non contiene nulla), e non ti viene
restituito nulla? Incredibbile!!!
Posso continuare a suggerirti di leggere un po' di documentazione perl?
  $a = q{<a href="ciao"> testo testo <a href="hi">};
  @links = ($a =~ /<a href="([^"]+)"/g);
  for my $link (@links) {
     print $lin, "\n";
  }
E io cercherei comunque di utilizzare il modulo che ti è stato suggerito, o
qualche altro modulo per il trattamento di documenti html, che sono
senz'altro più affidabili di una banale espressione regolare su tutto il
documento.
Ciao.