Bonjour à tous,
je me permets de venir vous demander votre aide qui me serait plus que précieuse.
Je suis actuellement des cours sur Perl (d'initiation), et je dois rendre un travail qui ne me semble pas trop difficile pour des spécialistes, mais pour le moment, j'ai encore du mal avec ce langage.
Voici ce que l'on me demande de faire:
Et voici le bout de code que j'ai essayé de faire:Je dois récupérer des informations sur un site référençant des DVD
(par exemple TAXI (Édition DTS) ), et récupérer des informations
comme : nom du film, année de sortie, réalisateur, scénariste, éditeur,
acteurs, durée, le synopsis.
Je dois donc écrire un programme Perl qui filtre cette page et permettre de ne
garder que les champs de données intéressant. Le résultat serait
envoyé sous forme de texte sur la sortie standard, les intitulés seraient
écrit en majuscules.
Là où est mon gros problème, c'est que l'on me demande pas mal de fonctionnalité optionnelle que je n'arrive pas à mettre en place. Ces fonctionnalité sont:
1 Permettre de récupérer une URL directement et non plus passer par
un fichier.
2 Permettre de traiter un fichier liste d'URL à traiter.
3 Transformez votre programme de façon à utiliser des fonctions et
sous-fonctions pour réaliser les blocs de traitement. Stockez vos
fonctions dans un chier bibliothèque que vous appellerez (utilisation
de use) lors de votre programme principal.
4 Stockez les informations sur le DVD dans un tableau associatif.
Sauvegardez dans un chier ce tableau associatif pour une utilisation
ultérieure (astuce : cf. fonction dbmopen).
5 Exportez les informations sous forme d'un chier SQL (à vous de
définir la structure de la base de donnée).
6 Créer un menu texte pour guider l'utilisation de votre programme sur
les différentes possibilités ou les choix de paramètres.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29 #!/usr/bin/perl -w #Je n'ai pas reussi a récupérer ni le synopsis puisqu'il est écrit sur plusieurs ligne et je ne sais pas lire plusieurs ligne en meme temps. #Au niveau des acteurs, au contraire ils sont tous codé sur la même ligne ce qui rend difficile la récupération des informations. $fichier=$ARGV[0]; if ($fichier){ open(F,$fichier); while($ligne=<F>){ if($ligne=~ /div *class *= *" *dvd_title *" *>([^<]*)< *\/div/i){; print "Titre du film : $1 \n\n" } if($ligne=~ /div *class *= *" *dvd_subtitle *" *>([^<]*)< *\/div/i){ print "$1 :\n"; } if($ligne=~ /a *class *= *" *dvd_text *"[^>]* *>([^<]*)< *\/a/i){ print "$1 \n\n"; } if($ligne=~ /div *class *= *" *dvd_text *" *>([^<]*)< *\/div/i){ print "$1 \n\n"; } if($ligne=~ /a *title *= *[^>]* *>([^<]*)< *\/a/i){ print "$1 \n\n"; } } }
En espérant que l'un de vous accepte de prendre le temps de m'aider à améliorer et à compléter mon code. Cela m'enlèverait vraiment une immense épine du pied!!!
Bien à vous
Partager