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 :

automatiser une naviguation internet


Sujet :

Réseau/Web Python

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut automatiser une naviguation internet
    Bonsoir,

    Je souhaite me lancer dans la programmation, je n'ai aucune connaissance dans ce domaine et on m'a conseillé Python.

    J'ai un projet bien précis et je voudrais savoir si cela est possible ou non.
    J'ai lu dans la FAQ que l'on pouvait lire le contenu d'une page web. Mais est-ce que l'on peut automatiser des actions sur un site web? Exemple, plannifier une recherche sur google afin qu'ensuite le programme lise le contenu de la recherche.

    Merci d'avance!

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    89
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2004
    Messages : 89
    Points : 107
    Points
    107
    Par défaut testes ça
    Tu n'aura plus qu'a l'adapter, mais le plus gros du travail est fait
    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
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
     
    #!/usr/bin/python
    # -*- coding: ISO-8859-15 -*-
     
    import re
    import sys
    import os.path
    import urllib
    import urllib2
    import cookielib
     
    #=================================================================
    # gestion des cookies et install d'un opener
    # est utile pour gerer les cookies de session par exemple
    #qu'on pourra zyeuter car on les sauve sur le disk
    COOKIEFILE = 'cookies.lwp'
    cj = None
    urlopen = urllib2.urlopen
    Request = urllib2.Request
    cj = cookielib.LWPCookieJar()
     
    if cj is not None:
        if os.path.isfile(COOKIEFILE):
            # si nous avons un fichier cookie déjà sauvegardé
            #  alors charger les cookies dans le Cookie Jar
             cj.load(COOKIEFILE)
     
        # Maintenant nous avons besoin d'avoir notre Cookie Jar
        # installé dans l'opener;
        # pour chercher des URLs
        if cookielib is not None:
            # nous appelons HTTPCookieProcessor
            # et installons l'opener dans urllib2
            opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cj))
            urllib2.install_opener(opener)
     
    #================================================================
    # on fait croire au site qu'on visite qu'on est un navigateur
    # on va modifier le header de la requête HTTP
    # sinon on peut se faire jeter car on s'annonce avec python.urllib
    headers={'User-agent':'Mozilla/4.0 (compatible; MSIE 5.5; Windows NT'}
     
    #==============================================================
    #expressions regulieres
    r_link='<a class=l href="(.*?)"'
    #google range les liens principaux sous cet forme '<a class=l href="?????
    #voir autre class pour les autres types de liens du style cache etc...
    search_link=re.compile(r_link)
     
    #page de google sur laquelle on veut chercher
    g_page="http://google.fr/search?q="
     
    #=============================================================
    # définition de quelques fonctions utiles
    #
     
    def write_page(fichier,mode,txt):
        """ write page loaded on file system """
        try:
            f = open(fichier, mode)
            f.write(txt)
            f.close()
        finally:
            # finally is always called
            # then we are sure file is closed
            f.close()
     
    def get_page(url,headers,post=None):
        """  Load page , do and encode post if needed """    
        try:
            if post is not None:
                #encode request post
                post = urllib.urlencode(post)
     
            req = Request(url, post, headers)
            handle = urlopen(req)
     
        except IOError, e:
            #print code and reason if error
            print _('We failed to open '), url
            if hasattr(e, 'code'):
                print _('We failed with error code - '),e.code
            elif hasattr(e, 'reason'):
                print _("The error object has the following 'reason' attribute :")
                print e.reason
                print _("This usually means the server doesn't exist,")
                print _("is down, or we don't have an internet connection.")
            sys.exit()
     
        else:
            page= handle.read()
            handle.close()#closed object like a file, memory now is free
     
        if cj is not None:
            # save the cookies again
            cj.save(COOKIEFILE)
     
        return page
     
    def find_exp(string,search):
        """ return list found values """
        found=re.findall(search,string)
        return found
     
    #===================================================================
    def search_google(search):
        """ extrait les liens des resultats de la premiere page
        d'une recherche google et suave les pages sur le disk"""
     
        p_results=get_page(g_page + urllib.quote(search),headers)
        write_page('results.htm', 'w',p_results)
        print "recherche Google"
        l_results=find_exp(p_results,r_link)
        i=len(l_results)
        for r in l_results:
            pr=get_page(r,headers)
            print "sauvegarde de : " ,r
            write_page('result'+str(i)+'.htm', 'w',pr)
            i=i-1
        print "done"
     
    search_google("python how-to")
    Ce script fait une recherche google sur "Python How-to" et te sauve les pages des résultats(la première pas tout le site) sur ton disque.

    C'est juste pour exemple,et je t'ai tout documenté.

    Enjoy
    @++

  3. #3
    Candidat au Club
    Inscrit en
    Juin 2006
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Juin 2006
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    J'en demandais pas tant, merci beaucoup!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Titre d'une page Internet
    Par Ramses__ dans le forum Web & réseau
    Réponses: 4
    Dernier message: 29/09/2006, 11h51
  2. Peut-on créer une page internet via JBuilder?
    Par Xavier dans le forum JBuilder
    Réponses: 2
    Dernier message: 17/02/2005, 21h21
  3. [LG]Lecture de fichier avec une adresse internet
    Par forbin dans le forum Langage
    Réponses: 8
    Dernier message: 09/02/2005, 19h00
  4. [Réseau] Créer une connexion Internet
    Par Tranber dans le forum VB 6 et antérieur
    Réponses: 11
    Dernier message: 17/10/2002, 17h01

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