Partage
  • Partager sur Facebook
  • Partager sur Twitter

Parcourir sous dossier recursivement

    28 octobre 2011 à 17:39:28

    Bonjour, je travail sur un programme python me permettant de recuperer/sauvegarder tous les fichier de dossier d'un site, mais mon code ne fait que deux niveau, je m'explique:
    /documents contient 3 dossier et 6 documments.
    Les 6 docs sont telechargé, et les 3 dossier aussi mais dans /document/dir1, il y a un sous dossier qui s'appelle test, et lui n'est pas telechargé.
    Comment je pourrais faire pour adaptre mon code à ca (python 2.7).

    Merci beaucoup
    #coding=utf-8
    
    
    import urllib, urllib2, re, argparse, os
    
    def download(tab):
      subDirectory = []
      for i in tab:
        try:
          urllib.urlretrieve(arguments['url']+i, i)
          print 'Telechargement de : ' + i
        except IOError as (strerr, strer):
          print 'Download Failed ' + i +  ' ' + strer
          if strer == 'Is a directory' :
    	subDirectory.append(i)
      return subDirectory
      
      
    parser = argparse.ArgumentParser(description='Get All Document from a page')
    parser.add_argument('url', action="store", help="Give an url to scan")
    args = parser.parse_args() 
    arguments = dict(args._get_kwargs()) 
    
    requete = urllib2.Request(arguments['url'])
    page = urllib2.urlopen(requete).read()
    
    variable =  re.findall('\<a href="(.+?)"', page)
    firstSub = download(variable)
    print firstSub
    for i in firstSub:
      if i != '/' :
        os.mkdir(i)
        print 'Telechargement de : ' +  arguments['url'] + i
        requete = urllib2.Request(arguments['url'] + i)
        page = urllib2.urlopen(requete).read()
        variable = re.findall('\<a href="(.+?)"', page)
        download(variable)
    
    • Partager sur Facebook
    • Partager sur Twitter

    Parcourir sous dossier recursivement

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
    • Editeur
    • Markdown