Je me demandais si quelqun aurait il une idee sur la possibilite et le
moyen, dans une console debian, de lister dans un fichier texte tous les
liens d'un site?
Non pas d'aspirer le site, juste de faire un listing de tous les liens sur
ce site la, pour ensuite pouvoir retravailler cette liste.
Mon but serait de faire un truc type 'listing' des liens de mon site,
mais en passant par le net et le serveur web et non pas juste en listant
tous le fichiers des repertoires au niveau local.
Si quelqun a une idee de script ou d'apt-get qui permettrait de faire ca,
(et qui se limiterais a mon domaine, je veux pas faire un plan de tout le
net ;)) je suis prenneur!
Merci!
Roger
--
Roger Bouteiller
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
steve
Le Jeudi, 9 Février 2006 11.01, Roger Bouteiller a écrit :
Bonjour a tous!
Bonjour,
Je me demandais si quelqun aurait il une idee sur la possibilite et le moyen, dans une console debian, de lister dans un fichier texte tous les liens d'un site?
un début de réponse :
grep "<a href" fichier.html > lesliens.txt
avec un peu de ménage après.
Mais il doit y avoir d'autres méthodes. Il me semble me rappeler que Fire fox possède une extension qui fait cela, mais je ne me rappelle pas de son no m.
Non pas d'aspirer le site, juste de faire un listing de tous les liens sur ce site la, pour ensuite pouvoir retravailler cette liste.
Mon but serait de faire un truc type 'listing' des liens de mon site, mais en passant par le net et le serveur web et non pas juste en listant tous le fichiers des repertoires au niveau local.
Si quelqun a une idee de script ou d'apt-get qui permettrait de faire ca, (et qui se limiterais a mon domaine, je veux pas faire un plan de tout le net ;)) je suis prenneur!
Merci!
Roger
Bonne journée
-- Roger Bouteiller
-- steve jabber :
Le Jeudi, 9 Février 2006 11.01, Roger Bouteiller a écrit :
Bonjour a tous!
Bonjour,
Je me demandais si quelqun aurait il une idee sur la possibilite et le
moyen, dans une console debian, de lister dans un fichier texte tous les
liens d'un site?
un début de réponse :
grep "<a href" fichier.html > lesliens.txt
avec un peu de ménage après.
Mais il doit y avoir d'autres méthodes. Il me semble me rappeler que Fire fox
possède une extension qui fait cela, mais je ne me rappelle pas de son no m.
Non pas d'aspirer le site, juste de faire un listing de tous les liens sur
ce site la, pour ensuite pouvoir retravailler cette liste.
Mon but serait de faire un truc type 'listing' des liens de mon site,
mais en passant par le net et le serveur web et non pas juste en listant
tous le fichiers des repertoires au niveau local.
Si quelqun a une idee de script ou d'apt-get qui permettrait de faire ca,
(et qui se limiterais a mon domaine, je veux pas faire un plan de tout le
net ;)) je suis prenneur!
Le Jeudi, 9 Février 2006 11.01, Roger Bouteiller a écrit :
Bonjour a tous!
Bonjour,
Je me demandais si quelqun aurait il une idee sur la possibilite et le moyen, dans une console debian, de lister dans un fichier texte tous les liens d'un site?
un début de réponse :
grep "<a href" fichier.html > lesliens.txt
avec un peu de ménage après.
Mais il doit y avoir d'autres méthodes. Il me semble me rappeler que Fire fox possède une extension qui fait cela, mais je ne me rappelle pas de son no m.
Non pas d'aspirer le site, juste de faire un listing de tous les liens sur ce site la, pour ensuite pouvoir retravailler cette liste.
Mon but serait de faire un truc type 'listing' des liens de mon site, mais en passant par le net et le serveur web et non pas juste en listant tous le fichiers des repertoires au niveau local.
Si quelqun a une idee de script ou d'apt-get qui permettrait de faire ca, (et qui se limiterais a mon domaine, je veux pas faire un plan de tout le net ;)) je suis prenneur!
Merci!
Roger
Bonne journée
-- Roger Bouteiller
-- steve jabber :
Jacques L'helgoualc'h
Roger Bouteiller a écrit, jeudi 9 février 2006, à 11:01 :
Bonjour a tous!
bonjour,
Je me demandais si quelqun aurait il une idee sur la possibilite et le moyen, dans une console debian, de lister dans un fichier texte tous les liens d'un site?
wget et sed ?
Non pas d'aspirer le site, juste de faire un listing de tous les liens sur ce site la, pour ensuite pouvoir retravailler cette liste.
$ wget -m -b --delete-after http://mon.site Poursuite à l'arrière plan, pid 3123. La sortie sera écrite vers « wget-log ».
... et cette sortie n'est pas trop difficile à analyser. Si tu préfères utiliser Perl, « require HTML::LinkExtor; » peut être utile. -- Jacques L'helgoualc'h
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Roger Bouteiller a écrit, jeudi 9 février 2006, à 11:01 :
Bonjour a tous!
bonjour,
Je me demandais si quelqun aurait il une idee sur la possibilite et le
moyen, dans une console debian, de lister dans un fichier texte tous les
liens d'un site?
wget et sed ?
Non pas d'aspirer le site, juste de faire un listing de tous les liens sur
ce site la, pour ensuite pouvoir retravailler cette liste.
$ wget -m -b --delete-after http://mon.site
Poursuite à l'arrière plan, pid 3123.
La sortie sera écrite vers « wget-log ».
... et cette sortie n'est pas trop difficile à analyser. Si tu préfères
utiliser Perl, « require HTML::LinkExtor; » peut être utile.
--
Jacques L'helgoualc'h
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Roger Bouteiller a écrit, jeudi 9 février 2006, à 11:01 :
Bonjour a tous!
bonjour,
Je me demandais si quelqun aurait il une idee sur la possibilite et le moyen, dans une console debian, de lister dans un fichier texte tous les liens d'un site?
wget et sed ?
Non pas d'aspirer le site, juste de faire un listing de tous les liens sur ce site la, pour ensuite pouvoir retravailler cette liste.
$ wget -m -b --delete-after http://mon.site Poursuite à l'arrière plan, pid 3123. La sortie sera écrite vers « wget-log ».
... et cette sortie n'est pas trop difficile à analyser. Si tu préfères utiliser Perl, « require HTML::LinkExtor; » peut être utile. -- Jacques L'helgoualc'h
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Sylvain Sauvage
Jeudi 9 février 2006, 11:35:42 CET, steve a écrit :
Le Jeudi, 9 Février 2006 11.01, Roger Bouteiller a écrit : > Bonjour a tous!
Bonjour,
'jour,
> Je me demandais si quelqun aurait il une idee sur la possibilite et le > moyen, dans une console debian, de lister dans un fichier texte tous > les liens d'un site?
un début de réponse :
grep "<a href" fichier.html > lesliens.txt
avec un peu de ménage après.
Marchera pas : le href peut ne pas être sur la même ligne que le <a Une recherche de "href" seulement serait plus large.
En tout cas, il faut le programmer pour ne rien rater si on veut que cela soit réutilisable et complet. Un petit script pourrait aller si on est sûr que les href n'apparaissent pas ailleurs que dans une ancre active (p.ex. dans un exemple de code ou une partie commentée).
-- Sylvain Sauvage
Jeudi 9 février 2006, 11:35:42 CET, steve a écrit :
Le Jeudi, 9 Février 2006 11.01, Roger Bouteiller a écrit :
> Bonjour a tous!
Bonjour,
'jour,
> Je me demandais si quelqun aurait il une idee sur la possibilite et le
> moyen, dans une console debian, de lister dans un fichier texte tous
> les liens d'un site?
un début de réponse :
grep "<a href" fichier.html > lesliens.txt
avec un peu de ménage après.
Marchera pas : le href peut ne pas être sur la même ligne que le <a
Une recherche de "href" seulement serait plus large.
En tout cas, il faut le programmer pour ne rien rater si on veut que cela
soit réutilisable et complet. Un petit script pourrait aller si on est
sûr que les href n'apparaissent pas ailleurs que dans une ancre active
(p.ex. dans un exemple de code ou une partie commentée).
Jeudi 9 février 2006, 11:35:42 CET, steve a écrit :
Le Jeudi, 9 Février 2006 11.01, Roger Bouteiller a écrit : > Bonjour a tous!
Bonjour,
'jour,
> Je me demandais si quelqun aurait il une idee sur la possibilite et le > moyen, dans une console debian, de lister dans un fichier texte tous > les liens d'un site?
un début de réponse :
grep "<a href" fichier.html > lesliens.txt
avec un peu de ménage après.
Marchera pas : le href peut ne pas être sur la même ligne que le <a Une recherche de "href" seulement serait plus large.
En tout cas, il faut le programmer pour ne rien rater si on veut que cela soit réutilisable et complet. Un petit script pourrait aller si on est sûr que les href n'apparaissent pas ailleurs que dans une ancre active (p.ex. dans un exemple de code ou une partie commentée).
On Thursday, 9 February 2006 13:14, Sylvain Sauvage wrote:
> un début de réponse : > > grep "<a href" fichier.html > lesliens.txt > > avec un peu de ménage après.
Marchera pas : le href peut ne pas être sur la même ligne que le <a Une recherche de "href" seulement serait plus large.
En tout cas, il faut le programmer pour ne rien rater si on veut que cela soit réutilisable et complet. Un petit script pourrait aller si on est sûr que les href n'apparaissent pas ailleurs que dans une ancre active (p.ex. dans un exemple de code ou une partie commentée).
Un example a la va-vite, mais vraiment vite alors, i.e. sale et issu de cop ier/coller. D'autres pourront poster un truc similaire en (tellement) d'autres language s. C'est /juste/ pour donner idee de comment ca peut se faire, sans pretention aucune. A+, JD.
use strict; ## Strict coding use diagnostics; ## Verbose messages use LWP::Simple; ## Easy fetch the web use HTML::Parser; ## To get list of links on a web page
if (! @ARGV) { print STDERR "Usage: %0 urlnnWill list all links of given urln"; exit 1; }
# get url my $url = shift; my $listing = get($url); if (!defined($listing)) { print STDERR "Cannot get $urln"; exit 1; }
# Do parsing $p->parse($listing) || die $!; $p->eof;
# Finished exit 0;
sub start_handler { my($self, $tag, $attr) = @_; return unless $tag eq "a"; return unless exists $attr->{href}; # If you want the link uncomment the following print myabs($attr->{href},$url) . "n"; $self->handler(text => [], '@{dtext}' ); $self->handler(end => &end_handler, "self,tagname"); }
sub end_handler { my($self, $tag) = @_; my $text = join("", @{$self->handler("text")}); $text =~ s/^s+//; $text =~ s/s+$//; $text =~ s/s+/ /g; # If you want the text uncomment the following # print "$textn";
# ----------------------------------------------------------------- # # Subroutine : myabs # # Purpose : Return an absolute URL # Input : link # base # # Comment : This is a wrapper arounf URI::URL or URI depending on # libwww version. # ----------------------------------------------------------------- sub myabs { # ## Depending of libwww version: use URI::URL or URI or do nothing... # my ($link,$base) = (@_); my $linkq = quotemeta($link); my $baseq = quotemeta($base); my $newlink = eval "use URI::URL; url("$linkq","$baseq")->abs->as_string"; if ($@) { $newlink = eval "use URI; URI->new->new_abs("$linkq","$baseq")"; if ($@) { $newlink = ($link =~ /^[w]:/// ? $link : (substr($base,-1,1) eq '/' ? "$base$link" : "$base/$link")); } } return($newlink); }
--Boundary-00=_Td06DmcOvCNx5L2--
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
On Thursday, 9 February 2006 13:14, Sylvain Sauvage wrote:
> un début de réponse :
>
> grep "<a href" fichier.html > lesliens.txt
>
> avec un peu de ménage après.
Marchera pas : le href peut ne pas être sur la même ligne que le <a
Une recherche de "href" seulement serait plus large.
En tout cas, il faut le programmer pour ne rien rater si on veut que cela
soit réutilisable et complet. Un petit script pourrait aller si on est
sûr que les href n'apparaissent pas ailleurs que dans une ancre active
(p.ex. dans un exemple de code ou une partie commentée).
Un example a la va-vite, mais vraiment vite alors, i.e. sale et issu de cop ier/coller.
D'autres pourront poster un truc similaire en (tellement) d'autres language s.
C'est /juste/ pour donner idee de comment ca peut se faire, sans pretention aucune.
A+, JD.
use strict; ## Strict coding
use diagnostics; ## Verbose messages
use LWP::Simple; ## Easy fetch the web
use HTML::Parser; ## To get list of links on a web page
if (! @ARGV) {
print STDERR "Usage: %0 urlnnWill list all links of given urln";
exit 1;
}
# get url
my $url = shift;
my $listing = get($url);
if (!defined($listing)) {
print STDERR "Cannot get $urln";
exit 1;
}
# Do parsing
$p->parse($listing) || die $!;
$p->eof;
# Finished
exit 0;
sub start_handler {
my($self, $tag, $attr) = @_;
return unless $tag eq "a";
return unless exists $attr->{href};
# If you want the link uncomment the following
print myabs($attr->{href},$url) . "n";
$self->handler(text => [], '@{dtext}' );
$self->handler(end => &end_handler, "self,tagname");
}
sub end_handler {
my($self, $tag) = @_;
my $text = join("", @{$self->handler("text")});
$text =~ s/^s+//;
$text =~ s/s+$//;
$text =~ s/s+/ /g;
# If you want the text uncomment the following
# print "$textn";
# -----------------------------------------------------------------
#
# Subroutine : myabs
#
# Purpose : Return an absolute URL
# Input : link
# base
#
# Comment : This is a wrapper arounf URI::URL or URI depending on
# libwww version.
# -----------------------------------------------------------------
sub myabs {
#
## Depending of libwww version: use URI::URL or URI or do nothing...
#
my ($link,$base) = (@_);
my $linkq = quotemeta($link);
my $baseq = quotemeta($base);
my $newlink = eval "use URI::URL; url("$linkq","$baseq")->abs->as_string";
if ($@) {
$newlink = eval "use URI; URI->new->new_abs("$linkq","$baseq")";
if ($@) {
$newlink = ($link =~ /^[w]:/// ? $link : (substr($base,-1,1) eq '/' ? "$base$link" : "$base/$link"));
}
}
return($newlink);
}
--Boundary-00=_Td06DmcOvCNx5L2--
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
On Thursday, 9 February 2006 13:14, Sylvain Sauvage wrote:
> un début de réponse : > > grep "<a href" fichier.html > lesliens.txt > > avec un peu de ménage après.
Marchera pas : le href peut ne pas être sur la même ligne que le <a Une recherche de "href" seulement serait plus large.
En tout cas, il faut le programmer pour ne rien rater si on veut que cela soit réutilisable et complet. Un petit script pourrait aller si on est sûr que les href n'apparaissent pas ailleurs que dans une ancre active (p.ex. dans un exemple de code ou une partie commentée).
Un example a la va-vite, mais vraiment vite alors, i.e. sale et issu de cop ier/coller. D'autres pourront poster un truc similaire en (tellement) d'autres language s. C'est /juste/ pour donner idee de comment ca peut se faire, sans pretention aucune. A+, JD.
use strict; ## Strict coding use diagnostics; ## Verbose messages use LWP::Simple; ## Easy fetch the web use HTML::Parser; ## To get list of links on a web page
if (! @ARGV) { print STDERR "Usage: %0 urlnnWill list all links of given urln"; exit 1; }
# get url my $url = shift; my $listing = get($url); if (!defined($listing)) { print STDERR "Cannot get $urln"; exit 1; }
# Do parsing $p->parse($listing) || die $!; $p->eof;
# Finished exit 0;
sub start_handler { my($self, $tag, $attr) = @_; return unless $tag eq "a"; return unless exists $attr->{href}; # If you want the link uncomment the following print myabs($attr->{href},$url) . "n"; $self->handler(text => [], '@{dtext}' ); $self->handler(end => &end_handler, "self,tagname"); }
sub end_handler { my($self, $tag) = @_; my $text = join("", @{$self->handler("text")}); $text =~ s/^s+//; $text =~ s/s+$//; $text =~ s/s+/ /g; # If you want the text uncomment the following # print "$textn";
# ----------------------------------------------------------------- # # Subroutine : myabs # # Purpose : Return an absolute URL # Input : link # base # # Comment : This is a wrapper arounf URI::URL or URI depending on # libwww version. # ----------------------------------------------------------------- sub myabs { # ## Depending of libwww version: use URI::URL or URI or do nothing... # my ($link,$base) = (@_); my $linkq = quotemeta($link); my $baseq = quotemeta($base); my $newlink = eval "use URI::URL; url("$linkq","$baseq")->abs->as_string"; if ($@) { $newlink = eval "use URI; URI->new->new_abs("$linkq","$baseq")"; if ($@) { $newlink = ($link =~ /^[w]:/// ? $link : (substr($base,-1,1) eq '/' ? "$base$link" : "$base/$link")); } } return($newlink); }
--Boundary-00=_Td06DmcOvCNx5L2--
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
manioul
Le jeudi 09 février 2006 à 11:01 +0100, Roger Bouteiller a écrit :
Bonjour a tous!
Coucou!
Du perl, avec les modules HTML::TreeBuilder et HTML::Element http://search.cpan.org/~petdance/HTML-Tree-3.1901/lib/HTML/TreeBuilder.pm http://search.cpan.org/~petdance/HTML-Tree-3.1901/lib/HTML/Element.pm
++ ;)
Je me demandais si quelqun aurait il une idee sur la possibilite et le moyen, dans une console debian, de lister dans un fichier texte tous les liens d'un site?
Non pas d'aspirer le site, juste de faire un listing de tous les liens sur ce site la, pour ensuite pouvoir retravailler cette liste.
Mon but serait de faire un truc type 'listing' des liens de mon site, mais en passant par le net et le serveur web et non pas juste en listant tous le fichiers des repertoires au niveau local.
Si quelqun a une idee de script ou d'apt-get qui permettrait de faire ca, (et qui se limiterais a mon domaine, je veux pas faire un plan de tout le net ;)) je suis prenneur!
Merci!
Roger
-- Roger Bouteiller
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact
Le jeudi 09 février 2006 à 11:01 +0100, Roger Bouteiller a écrit :
Bonjour a tous!
Coucou!
Du perl, avec les modules HTML::TreeBuilder et HTML::Element
http://search.cpan.org/~petdance/HTML-Tree-3.1901/lib/HTML/TreeBuilder.pm
http://search.cpan.org/~petdance/HTML-Tree-3.1901/lib/HTML/Element.pm
++ ;)
Je me demandais si quelqun aurait il une idee sur la possibilite et le
moyen, dans une console debian, de lister dans un fichier texte tous les
liens d'un site?
Non pas d'aspirer le site, juste de faire un listing de tous les liens sur
ce site la, pour ensuite pouvoir retravailler cette liste.
Mon but serait de faire un truc type 'listing' des liens de mon site,
mais en passant par le net et le serveur web et non pas juste en listant
tous le fichiers des repertoires au niveau local.
Si quelqun a une idee de script ou d'apt-get qui permettrait de faire ca,
(et qui se limiterais a mon domaine, je veux pas faire un plan de tout le
net ;)) je suis prenneur!
Merci!
Roger
--
Roger Bouteiller
--
Pensez à lire la FAQ de la liste avant de poser une question :
http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to debian-user-french-REQUEST@lists.debian.org
with a subject of "unsubscribe". Trouble? Contact listmaster@lists.debian.org
Le jeudi 09 février 2006 à 11:01 +0100, Roger Bouteiller a écrit :
Bonjour a tous!
Coucou!
Du perl, avec les modules HTML::TreeBuilder et HTML::Element http://search.cpan.org/~petdance/HTML-Tree-3.1901/lib/HTML/TreeBuilder.pm http://search.cpan.org/~petdance/HTML-Tree-3.1901/lib/HTML/Element.pm
++ ;)
Je me demandais si quelqun aurait il une idee sur la possibilite et le moyen, dans une console debian, de lister dans un fichier texte tous les liens d'un site?
Non pas d'aspirer le site, juste de faire un listing de tous les liens sur ce site la, pour ensuite pouvoir retravailler cette liste.
Mon but serait de faire un truc type 'listing' des liens de mon site, mais en passant par le net et le serveur web et non pas juste en listant tous le fichiers des repertoires au niveau local.
Si quelqun a une idee de script ou d'apt-get qui permettrait de faire ca, (et qui se limiterais a mon domaine, je veux pas faire un plan de tout le net ;)) je suis prenneur!
Merci!
Roger
-- Roger Bouteiller
-- Pensez à lire la FAQ de la liste avant de poser une question : http://wiki.debian.net/?DebianFrench
Pensez à rajouter le mot ``spam'' dans vos champs "From" et "Reply-To:"
To UNSUBSCRIBE, email to with a subject of "unsubscribe". Trouble? Contact