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 30 31 32 33 34 35 36 37 38
|
from sgmllib import SGMLParser
import urllib
class Parser(SGMLParser) : #la classe Parser hérite de toutes les fonctions du de la classe SGMLParser
def reset (self) :
SGMLParser.reset(self) # on initilalise la classe hérité: obligatoire pour pouvoir l'utiliser
self.img_src=[] # on crée un tableau pour collecter les résultats attribut de la classe Parser
def start_img(self, attrs) : #on définis une méthode (fonction de classe) qui va collecter toutes les balises images et leurs attributs on peut remplacer img par un autre nom de balise HTML
for name, value in attrs : #on parcourt les résultat collecter
if name == 'src' : #si l'atribut src est définis on enregistre la valeur de celui-çi dans dans notre attribut définis dans le constructeur.
self.img_src.append(value)
def chargeur(self, s) :
'''s=str(url)'''
self.url_opener=urllib.urlopen(s) # On ouvre une page internet
self.reader=self.url_opener.read() #On lis cette page
self.feed(self.reader) #On donne cette page a manger au Parseur
self.close() # On ferme la page: les bonnes habitude
def retriever(self, a='/home/mon_nom/', b='url') : # On définis une méthode pour récupérer l'image
'''a=Endroit ou déposer l\'image a télécharger concatener a son futur nom sur ton disque
b=URL de l\'image collecter grace au parseur'''
catcher=urllib.urlretrieve(b, a)
print catcher
def print_result(self) :
for values in self.img_src :
print values
parseur=Parser() #On instancie la classe Parseur, on construit l'objet parseur
parseur.chargeur('url') # On appelle la méthode afin de donner a manger au aprseur en appelant le méthode de l'objet que nous avons créer
parseur.print_result() #On voit si on a des résultats
parseur.retriever('/home/nom_nom/Documents/mon_image.ext', 'url') #On récupère l'image |
Partager