A voir également:
- Récupérer l'arborescence d'un site à partir de l'url
- Denon perl pro test - Guide
- Active perl - Télécharger - Édition & Programmation
- Can't open perl script "makefile.pl": no such file or directory - Forum Perl
- Perl ftp - Forum Perl
- Perl xampp ✓ - Forum Linux / Unix
7 réponses
jphilippe
Messages postés
78
Date d'inscription
dimanche 7 octobre 2001
Statut
Membre
Dernière intervention
31 janvier 2002
6
3 janv. 2002 à 17:36
3 janv. 2002 à 17:36
Vi vi, je vois, tu peux essayer de faire un téléport pro, ca marche mieux. Mais si tu veux faire du Perl, c'est ton droit et je le respecte.
Plus sérieusement:
- Tu dois avoir besoin d'une fonction qui lance une requête HTTP,
- Une fonction qui analyse le résultat et le stock dans une structure,
ET surtout tu dois garder un repère des pages downloadées, sinon tu risques de le faire plusieurs fois.
Pour la requête HTTP, il faut utiliser:
use LWP::Simple; ' C est bien du PERL 5
use URI::URL;
my $url = url(' http://myadresse') ;
$contenu = get($url);
Demande si tu veux une autre aide
et sinon, je crois que le bouquin Perl en action d'o reilly peut t'aider sur le sujet.
Jean-Philippe
Plus sérieusement:
- Tu dois avoir besoin d'une fonction qui lance une requête HTTP,
- Une fonction qui analyse le résultat et le stock dans une structure,
ET surtout tu dois garder un repère des pages downloadées, sinon tu risques de le faire plusieurs fois.
Pour la requête HTTP, il faut utiliser:
use LWP::Simple; ' C est bien du PERL 5
use URI::URL;
my $url = url(' http://myadresse') ;
$contenu = get($url);
Demande si tu veux une autre aide
et sinon, je crois que le bouquin Perl en action d'o reilly peut t'aider sur le sujet.
Jean-Philippe
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 655
3 janv. 2002 à 16:33
3 janv. 2002 à 16:33
mmm... ça fait un bon bout de temps que je n'ai pas fait de perl.
Est-ce que tu ne pourrais pas utiliser plutôt Python ?
Il a des librairies prêtes à l'emploi pour HTTP, le parsing de fichiers HTML et les expressions régulières.
Et c'est infiniment plus lisible que du perl, tout en étant plus puissant.
http://www.python.org
Sur leur site, il y a même des exemples pour parcourir automatiquement un site web complet et parser les pages HTML.
Pour ma part, j'ai bricolé un petit script Python qui désactive tous les scripts (javascript, VBScript...) dans les pages HTML contenues dans un répertoire (et ses sous-répertoires).
C'est remarquablement facile à programmer.
Le code source devrait être compréhensible sans commentaire.
Si ça peut t'aider, c'est là:
http://sebsauvage.net/python/
http://sebsauvage.net/python/stripscripts.py
Est-ce que le site web que tu dois tester est en local sur ta machine ? (fichiers accessibles directement sans passer par HTTP ?)
Est-ce que tu ne pourrais pas utiliser plutôt Python ?
Il a des librairies prêtes à l'emploi pour HTTP, le parsing de fichiers HTML et les expressions régulières.
Et c'est infiniment plus lisible que du perl, tout en étant plus puissant.
http://www.python.org
Sur leur site, il y a même des exemples pour parcourir automatiquement un site web complet et parser les pages HTML.
Pour ma part, j'ai bricolé un petit script Python qui désactive tous les scripts (javascript, VBScript...) dans les pages HTML contenues dans un répertoire (et ses sous-répertoires).
C'est remarquablement facile à programmer.
Le code source devrait être compréhensible sans commentaire.
Si ça peut t'aider, c'est là:
http://sebsauvage.net/python/
http://sebsauvage.net/python/stripscripts.py
Est-ce que le site web que tu dois tester est en local sur ta machine ? (fichiers accessibles directement sans passer par HTTP ?)
jphilippe
Messages postés
78
Date d'inscription
dimanche 7 octobre 2001
Statut
Membre
Dernière intervention
31 janvier 2002
6
3 janv. 2002 à 17:39
3 janv. 2002 à 17:39
NB: si tu as un proxy, ca ne sera pas aussi simple
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 655
3 janv. 2002 à 17:55
3 janv. 2002 à 17:55
Si c'est juste pour récupérer un site web complet,
HTTrack est excellent
(très rapide, gratuit, sans pub):
http://www.httrack.com/
Ensuite, facile de les passer dans une moulinette perl ou Python.
HTTrack est excellent
(très rapide, gratuit, sans pub):
http://www.httrack.com/
Ensuite, facile de les passer dans une moulinette perl ou Python.
MisterJA
Messages postés
5
Date d'inscription
jeudi 13 décembre 2007
Statut
Membre
Dernière intervention
3 janvier 2008
14 déc. 2007 à 07:07
14 déc. 2007 à 07:07
Bonjour
J'ai lu ton message (qui date de 2002 mais bon ^^ ) :
("
Si c'est juste pour récupérer un site web complet,
HTTrack est excellent
(très rapide, gratuit, sans pub):
http://www.httrack.com/
Ensuite, facile de les passer dans une moulinette perl ou Python."
")
et j'ai télécharger HTTrack.
Je suis débutant en la matière et j'aurais besoin d'analyser de pages web avec python ( je viens juste de débuter python aussi ), je voudrais récupérer les informations essentiels des pages ( liens, tag, adresse, webmasters... ).
J'aurais voulu savoir si tu pouvais m'aider.
Merci d'avance, MisterJA
J'ai lu ton message (qui date de 2002 mais bon ^^ ) :
("
Si c'est juste pour récupérer un site web complet,
HTTrack est excellent
(très rapide, gratuit, sans pub):
http://www.httrack.com/
Ensuite, facile de les passer dans une moulinette perl ou Python."
")
et j'ai télécharger HTTrack.
Je suis débutant en la matière et j'aurais besoin d'analyser de pages web avec python ( je viens juste de débuter python aussi ), je voudrais récupérer les informations essentiels des pages ( liens, tag, adresse, webmasters... ).
J'aurais voulu savoir si tu pouvais m'aider.
Merci d'avance, MisterJA
MisterJA
Messages postés
5
Date d'inscription
jeudi 13 décembre 2007
Statut
Membre
Dernière intervention
3 janvier 2008
14 déc. 2007 à 08:40
14 déc. 2007 à 08:40
Bonjour
J'ai lu ton message (qui date de 2002 mais bon ^^ ) :
("
Si c'est juste pour récupérer un site web complet,
HTTrack est excellent
(très rapide, gratuit, sans pub):
http://www.httrack.com/
Ensuite, facile de les passer dans une moulinette perl ou Python."
")
et j'ai télécharger HTTrack.
Je suis débutant en la matière et j'aurais besoin d'analyser de pages web avec python ( je viens juste de débuter python aussi ), je voudrais récupérer les informations essentiels des pages ( liens, tag, adresse, webmasters... ).
J'aurais voulu savoir si tu pouvais m'aider.
Merci d'avance, MisterJA
J'ai lu ton message (qui date de 2002 mais bon ^^ ) :
("
Si c'est juste pour récupérer un site web complet,
HTTrack est excellent
(très rapide, gratuit, sans pub):
http://www.httrack.com/
Ensuite, facile de les passer dans une moulinette perl ou Python."
")
et j'ai télécharger HTTrack.
Je suis débutant en la matière et j'aurais besoin d'analyser de pages web avec python ( je viens juste de débuter python aussi ), je voudrais récupérer les informations essentiels des pages ( liens, tag, adresse, webmasters... ).
J'aurais voulu savoir si tu pouvais m'aider.
Merci d'avance, MisterJA
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
15 655
>
MisterJA
Messages postés
5
Date d'inscription
jeudi 13 décembre 2007
Statut
Membre
Dernière intervention
3 janvier 2008
14 déc. 2007 à 09:27
14 déc. 2007 à 09:27
Tu trouvera des exemples de récupération et analyse de page web là:
https://sebsauvage.net/python/snyppets/index.html
Les expressions régulières peuvent faire l'affaire, ou encore le module BeautifulSoup (exemple dans ma page).
https://sebsauvage.net/python/snyppets/index.html
Les expressions régulières peuvent faire l'affaire, ou encore le module BeautifulSoup (exemple dans ma page).
MisterJA
Messages postés
5
Date d'inscription
jeudi 13 décembre 2007
Statut
Membre
Dernière intervention
3 janvier 2008
>
sebsauvage
Messages postés
32893
Date d'inscription
mercredi 29 août 2001
Statut
Modérateur
Dernière intervention
21 octobre 2019
14 déc. 2007 à 09:43
14 déc. 2007 à 09:43
Merci je vais voir ce que je peux faire avec ça.
A plus
A plus
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
jphilippe
Messages postés
78
Date d'inscription
dimanche 7 octobre 2001
Statut
Membre
Dernière intervention
31 janvier 2002
6
4 janv. 2002 à 20:36
4 janv. 2002 à 20:36
J'ai réfléchi à ton problème, mais je ne suis pas certain que cela soit vraiment celui là.
Pour moi, si je le résume bien, ton problème consiste à downloader un site en local pour surfer dessus.
La décomposition du problème se résume ainsi pour moi :
- Une fonction qui va effectuer une requête HTTP pour récupérer l'élément
- Une fonction qui décompose une page html en liste de liens
- Une liste qui permet de gérer les liens (downloader, à downloader)
- Une fonction qui recompose une page html downloader avec les éléments downloader (remplace les liens vers le disque dur)
Je ne suis pas doué dans la gestion des objects PERL 5, mais je pense qu'il faudrait y passer pour gérer proprement le problème (la liste par exemple devrait être un objet, pareil pour la notion d'url, cela permettrait de faire des comparaisons, etc...).
Je ne connais pas les bibliothèques standard, mais je suppose que tout cela existe en partie.
L'utilisation de la fonction récursive est à mon avis une connerie, je verrais plutot une gestion autour de la liste (tant qu'il y a un élément, je vais chercher une donnée, si c'est une page html, je la décompose pour trouver les url qui la constitue, j'enregistre les url dans ma liste (sauf si l'url existe déjà), et j'enregistre la donnée sur disque dur, ... et à la fin, je reparcour la liste pour changer les données sur le disque local pour remettre les liens au gout du jour)
J'ai peur qu'avec le récursif, on se trouve vite bloquer pour faire évoluer. Maintenant, si c'est l'exercice, il faut faire attention à ne pas downloader 20 fois la même chose et surtout éviter les références circulaires (d'ou la liste).
Voilà,
Bonne année à toi aussi
Pour moi, si je le résume bien, ton problème consiste à downloader un site en local pour surfer dessus.
La décomposition du problème se résume ainsi pour moi :
- Une fonction qui va effectuer une requête HTTP pour récupérer l'élément
- Une fonction qui décompose une page html en liste de liens
- Une liste qui permet de gérer les liens (downloader, à downloader)
- Une fonction qui recompose une page html downloader avec les éléments downloader (remplace les liens vers le disque dur)
Je ne suis pas doué dans la gestion des objects PERL 5, mais je pense qu'il faudrait y passer pour gérer proprement le problème (la liste par exemple devrait être un objet, pareil pour la notion d'url, cela permettrait de faire des comparaisons, etc...).
Je ne connais pas les bibliothèques standard, mais je suppose que tout cela existe en partie.
L'utilisation de la fonction récursive est à mon avis une connerie, je verrais plutot une gestion autour de la liste (tant qu'il y a un élément, je vais chercher une donnée, si c'est une page html, je la décompose pour trouver les url qui la constitue, j'enregistre les url dans ma liste (sauf si l'url existe déjà), et j'enregistre la donnée sur disque dur, ... et à la fin, je reparcour la liste pour changer les données sur le disque local pour remettre les liens au gout du jour)
J'ai peur qu'avec le récursif, on se trouve vite bloquer pour faire évoluer. Maintenant, si c'est l'exercice, il faut faire attention à ne pas downloader 20 fois la même chose et surtout éviter les références circulaires (d'ou la liste).
Voilà,
Bonne année à toi aussi
salut à tous,
Je dois récupérer le contenu html d'un site web à partir de l'url en python, pour faire ça, j'ai pensé à d'abord récupérer l'arborescence du site, puis faire une boucle afin de récupérer le contenu html à partir des liens, mais en python , je ne sais pas comment le faire .
merci d'avance
Je dois récupérer le contenu html d'un site web à partir de l'url en python, pour faire ça, j'ai pensé à d'abord récupérer l'arborescence du site, puis faire une boucle afin de récupérer le contenu html à partir des liens, mais en python , je ne sais pas comment le faire .
merci d'avance
3 janv. 2002 à 22:12
Merci encore et bonne année !
4 janv. 2002 à 03:07
C'est exactement ce que j'ai fait pour un script perso. Il se connecte à un forum, recupère le lien de chaque nouveau topic puis recupère la page correspondante (Pour visualisation Off-Line).
jphilippe t'as donné de bonne base, il reste pas mal de choses après comme de parser (découper? diviser?) la page. Pour trouver le texte des liens précis.
Comment est constituée la base ? C'est une page web ? Une simple liste ?...
-= Bobinours =-
4 janv. 2002 à 13:08
Jean-Philippe