[Python] Aspirateur Repo

Download | Vote Up (3) | Vote Down (1)
#coding=utf-8

import urllib, urllib2, re, argparse, os, sys
# Ce tool permet d'aspirer l'intégralité d'un répertoire sur un site, plus ou moins rapidement, je l'avais codé pour aspirer le repo de hackbbs, mais il peut être adapté selon vos besoins. 
# Il peut également aspirer un répertoire ne contenant pas d'index par exemple, il fonctionne de façon récursive et stock les fichiers en respectant la structure du site.

def scan(path):
  print 'Debut scan ' + path
  dossier = 0
  requete = urllib2.Request(path)
  page = urllib2.urlopen(requete).read()
  variable =  re.findall('\<a href="(.+?)"', page)
  for i in variable:
    if i[0] != '/':
      try:
            urllib.urlretrieve(path+i, i)
            print 'Telechargement de : ' + i
      except IOError as (strerr, strer):
            if strer == 'Is a directory':
                        dossier+=1
                        print path + i
                        try:
                                os.mkdir(i)
                        except:
                                print 'Existe deja'
                        os.chdir(i)
                        scan(path + i)
        os.chdir('../')
        if dossier == 0:
                return

    
      
      
if __name__ == "__main__":      
  parser = argparse.ArgumentParser(description='Aspirer un dossier')
  parser.add_argument('url', action="store", help="URL a aspirer")
  args = parser.parse_args() 
  arguments = dict(args._get_kwargs()) 

  scan(arguments['url'])

ex0ns


Be the first to give feedback !

Please login to comment !