N-PN White-Hat Project
[Python] Aspirateur de dossier - Version imprimable

+- N-PN White-Hat Project (https://dev.n-pn.fr/forum)
+-- Forum : Programmation (https://dev.n-pn.fr/forum/forumdisplay.php?fid=72)
+--- Forum : Langages interprétés (https://dev.n-pn.fr/forum/forumdisplay.php?fid=27)
+--- Sujet : [Python] Aspirateur de dossier (/showthread.php?tid=1816)



[Python] Aspirateur de dossier - Dobry - 19-12-2011

En voyant le poste de Nowz je me suis souvenu d'un tool python que j'avais fait il y à quelques temps pour aspirer le repo d'un site (hackbbs pour ne pas le citer), et j'en profite pour le partager ici.
Bien sûr le code n'est pas forcément portable, étant donnée que chaque site ou page à une structure différente, mais il reste fonctionnel et modifiable (ce code fonctionne également pour les dossiers sans index sur un site par exemple).
Attention, le script télécharge tous les documents et sous dossiers.

Code :
#coding=utf-8


import urllib, urllib2, re, argparse, os, sys


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'])

Necromoine


[Python] Aspirateur de dossier. - CyberSee - 19-12-2011

Bravo warezz très bon petit bout de code. Merci du partage.
Moi j'ai utiliser WinHttrack pour aspirer les différents repo.


[Python] Aspirateur de dossier. - Dobry - 19-12-2011

Merci !!
Oui WinHttrack est bien mais un peu lourd je trouve et puis j'aime bien le faire à la main Big Grin


[Python] Aspirateur de dossier. - naax - 16-01-2012

mais à ce moment la, tous le monde peut avoir notre config.php avec les authentification?
merci de vos réponse.


RE: Aspirateur de dossier. - Dobry - 29-02-2012

Naax, non Big Grin Le php est exécuté coté serveur, ce que permet de faire le script présent c'est juste télécharger les pages que tu visionnerais à travers un navigateur, mais il fait ca tout seul, donc plus simple.