IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Réseau/Web Python Discussion :

Se connecter à un site et telecharger


Sujet :

Réseau/Web Python

  1. #1
    Inactif  
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 22
    Points : 21
    Points
    21
    Par défaut Se connecter à un site et telecharger
    Bonjour,
    je débute avec python, je recherche des exemples simple
    pour accéder à une page web avec python et pouvoir télecharger des videos et images et des textes qui y si trouve c'est possible ?


    pourriez vous m'aider ,avec des commandes ,et cours ...


    sinon cela ce fais aussi en script bash sous linux ?

    je recherche les deux méthodes.

    et pouvoir faire un logiciel aprés qui ce lance a partir de la console ou en cliquant dessus...

    Merci pour votre aide

  2. #2
    Expert éminent
    Avatar de tyrtamos
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2007
    Messages
    4 462
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2007
    Messages : 4 462
    Points : 9 249
    Points
    9 249
    Billets dans le blog
    6
    Par défaut
    Bonjour,

    Un petit exemple ici avec la bibliothèque graphique PyQt4: http://pyqt.developpez.com/tutoriels...rger-fichiers/ ou ici: http://python.jpvweb.com/mesrecettes..._fichier_pyqt4.
    Un expert est une personne qui a fait toutes les erreurs qui peuvent être faites, dans un domaine étroit... (Niels Bohr)
    Mes recettes python: http://www.jpvweb.com

  3. #3
    Expert éminent

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    4 300
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2008
    Messages : 4 300
    Points : 6 780
    Points
    6 780
    Par défaut
    Citation Envoyé par newsuser Voir le message
    Bonjour,
    je débute avec python, je recherche des exemples simple
    pour accéder à une page web avec python et pouvoir télecharger des videos et images et des textes qui y si trouve c'est possible ?
    Les sources de Qarte+7 par exemple:

    http://bazaar.launchpad.net/~vincent...qarte%2B7-0.5/

  4. #4
    Expert confirmé Avatar de PauseKawa
    Homme Profil pro
    Technicien Help Desk, maintenance, réseau, système et +
    Inscrit en
    Juin 2006
    Messages
    2 725
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Technicien Help Desk, maintenance, réseau, système et +
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2006
    Messages : 2 725
    Points : 4 005
    Points
    4 005
    Par défaut
    Bonjour,

    Sous Python: urllib2 (urllib2.urlopen(Source)) et shutil (shutil.copyfileobj(src, dst)).
    Sous Tux: wget + cat ou autre.

    @+
    Merci d'utiliser le forum pour les questions techniques.

  5. #5
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    SGMLParser pour trouver les src des vidéo et image a télécharger.
    Lit le chapitre concernant le parsing de pages web de dive in python: http://gwa.googlecode.com/files/diveintopython.pdf
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  6. #6
    Inactif  
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 22
    Points : 21
    Points
    21
    Par défaut
    Merci
    le principe de base est le meme partout pour acceder et telecharger ?
    j'imagine telecharger une video ou une image ou un texte cela doit etre different non y a pas aussi le calcul pour la quantite en kilo octets et si cela ce coupe on peut reprendre lol
    et on doit pas inserer un code comme un user agent pour faire croire que notre programme python est un navigateur ?
    merci

  7. #7
    Inactif  
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 22
    Points : 21
    Points
    21
    Par défaut merci
    pour telecharger sur une page web y a pas a mettre un port 80 ?
    ou c'est plus quand il y a un proxy ou routeur ?

    par exemple si je v eut recuperer la meteo diretement les infos ou wikipedia je rentre juste l 'adresse et ce que je veut avoir ou il va prendre tout ?

    pour la video cela doit etre plus dur non , ou il faut indiquer l'adresse de la video ? ou il scanne toutes les videos ? et ensuite je peut choisir celle que je veux ?

    Pour l interface graphique tk c'est pas suffisant pyqT4 c'est mieux c'est comme gtk+?

    En mode console direct sans graphique c'est pas trés bien ?

    En mode graphique cest plus beau et l'interface plus agréable..

    Merci

    le programme est comme un client comme mon navigateur ?
    et le web un serveur ?

  8. #8
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    Pour parser une page internet il faut importer le module SGMLParser et pour télécharger le module urllib.
    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
    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
    Tu peut adapter cette exemple mais surtout li le chapitre 8 avant.
    PS: je ne devrai pas écrire le programme a ta place mais comme tu me la demander... voici un exemple des plus simple ne fonctionnant que sur Linux pour la syntaxe du premier argument de la méthode retrieve.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  9. #9
    Inactif  
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 22
    Points : 21
    Points
    21
    Par défaut merci
    Merci c'est sympas

  10. #10
    Inactif  
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 22
    Points : 21
    Points
    21
    Par défaut re
    Bonjour je peux l utilisez pour récuperer aussi un fichier .pdf ou .mp3

    du genre www.eeee.com./.........hhhhhhh.pdf ou .mp3

    Pour le module sgm... il est integré a python 2.7 ?


    Pour la video aussi cela fonctionnerai ? .flv ?




    Merci c'est sympas pour ton aide

  11. #11
    Membre expérimenté
    Avatar de Luke spywoker
    Homme Profil pro
    Etudiant informatique autodidacte
    Inscrit en
    Juin 2010
    Messages
    1 077
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Etudiant informatique autodidacte

    Informations forums :
    Inscription : Juin 2010
    Messages : 1 077
    Points : 1 742
    Points
    1 742
    Par défaut
    Le module sgmllib est compris dans la bibliothèque standart de python.
    Il faut que tu connaisse le HTML pour le parser du moins les balises et attributs:
    Une image est implémenter dans le code d'une page dans une balise HTML <img src='url_de mon_image'>.
    Bref apprend et|ou lis des page HTML afin de pouvoir utilser le parseur car celui-çi récupère le contenus de touts les balises definis par les méthodes (fonction de classe):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    def start_+nom_de _la balise(self, attr) :
    Il faut que tu repère les balises qui contiennent ce que tu veut récupérer: voici une liste exhaustive des différentes balises: http://www.w3schools.com/html/default.asp
    Bon il faut que tu te débrouille maintenant que je t'ai donner les bases.
    PS: doucement avec le langage SMS dès fois tu est incompréhensible et il est proscrit sur ce site.
    Pour faire tes armes:
    Use du présent pour construire ton futur sinon use de ce que tu as appris auparavant.
    Et sois toujours bien armé avant de te lancer.
    Le hasard ne sourit qu'aux gens préparés...
    Site: Website programmation international (www.open-source-projects.net)
    Site: Website imagerie 3D (www.3dreaming-imaging.net)
    Testez aux moins pendant une semaine l'éditeur avec terminaux intégrées it-edit Vous l'adopterai sûrement !
    FUN is HARD WORK !!!

  12. #12
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Citation Envoyé par newsuser Voir le message
    Bonjour je peux l utilisez pour récuperer aussi un fichier .pdf ou .mp3e
    Je crois qu une fois ayant les liens "src", le téléchargement est plutôt simple.
    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/env python
    import urllib
     
    url = "http://gwa.googlecode.com/files/diveintopython.pdf"
    out = "dive.pdf"
    fout = open(out, "wb")
     
     
     
    opener = urllib.URLopener()
    size = 1024
    conn = opener.open(url)
    txt = conn.read(size)
    i = 0
    while txt:
        fout.write(txt)
        txt  = conn.read(size)
        print "text readed", i
        i +=1
     
    print "File downloaded, with size %d Ko" % i
     
    fout.close()
     
    def main():
        pass
     
    if __name__ == '__main__':
        main()
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

  13. #13
    Inactif  
    Homme Profil pro
    Inscrit en
    Novembre 2011
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Novembre 2011
    Messages : 22
    Points : 21
    Points
    21
    Par défaut merci
    Merci pour votre aide

    Il faut à chaque fois indiquer la taille du fichier dans size ?

    Le fichier télecharger est mis dans quelle endroit ? à la racine du disque c ?

    J'imagine que c'est encore plus dur si on doit faire une recherche ".pdf "
    sur le site et afficher ce qu'il trouve avec l'adresse complète des liens trouvés.
    www.lien.com../lien1.pdf
    www.lien.com../lien2.pdf

    Merci

  14. #14
    Membre éprouvé
    Avatar de afranck64
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2009
    Messages
    592
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Janvier 2009
    Messages : 592
    Points : 1 006
    Points
    1 006
    Par défaut
    Citation Envoyé par newsuser Voir le message
    Il faut à chaque fois indiquer la taille du fichier dans size ?
    size ici représentant la quantité d'octets que l on veut lire en "un coup".
    Citation Envoyé par newsuser Voir le message
    Le fichier télecharger est mis dans quelle endroit ? à la racine du disque c ?
    Dans le code posté, le fichier téléchargé est situé dans le même répertoire que le script. Mais vous pouvez modifier le répertoire de sauvegarde à votre guise.par exemple.
    Citation Envoyé par newsuser Voir le message
    J'imagine que c'est encore plus dur si on doit faire une recherche ".pdf "
    sur le site et afficher ce qu'il trouve avec l'adresse complète des liens trouvés.
    Je crois que dans ce cas, il vous faudra vous servir du module sgmllib comme indiqué par Luke Spywolker et probablement modifier la classe qu il propose, en cherchant cette fois-ci le tag "a" et en les valeurs selon l extension de fichier voulue.
    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
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    import urllib
     
     
    url = "http://www.bluej.org/tutorial/"
     
    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
        self.pdf_src=[] #on crée un tableau pour collecter les pdf de la page.
     
      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 start_a(self, attrs):
        url = self.url_opener.url
        base, link = url.split("//")
        parts = link.split("/")
        if len(parts) == 0 :
            parts = link.split("\\")
        furl = "//".join((base, parts[0]))
        rurl = parts[1:-2]
        if rurl:
            furl = "/".join((furl, rurl))
        for name, value in attrs:
            if name.upper() == "HREF" and value.upper().endswith(".PDF"):
                if value.upper().startswith("HTTP") or value.upper().startswith("FTP"):
                    self.pdf_src.append(value)
                    print "full value added."
                else:
                    nvalue = furl + value
                    self.pdf_src.append(nvalue)
     
     
      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
        for values in self.pdf_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
    Win 10 64 bits / Linux Mint 18, - AMD A6 Quad: Py27 / Py35
    CONTENU D'UNE QUESTION
    Exemples:
    - Configuration (système d'exploitation, version de Python et des bibliothèques utilisées)
    - Code source du morceau de programme où il y a un bogue
    - Ligne de code sur laquelle le bogue apparaît
    - Erreur complète retournée pas l'interpréteur Python
    - Recherche déjà effectuée (FAQ, Tutoriels, ...)
    - Tests déjà effectués

Discussions similaires

  1. connection à un site distant
    Par wided_instm dans le forum Apache
    Réponses: 1
    Dernier message: 16/08/2007, 17h47
  2. Qui est actuellement connecté à mon site
    Par deew59 dans le forum Langage
    Réponses: 13
    Dernier message: 23/02/2007, 08h19
  3. equipement necessaire pour connecter 2 sites distants à l'internet
    Par didou180982 dans le forum Développement
    Réponses: 4
    Dernier message: 09/02/2007, 12h28
  4. Réponses: 4
    Dernier message: 01/11/2006, 17h26
  5. Réponses: 2
    Dernier message: 28/11/2005, 08h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo