Eu escrevi agora um pequeno script para espelhar o servidor e salvar os nomes dos arquivos em um banco de dados.
você também pode consultar hashes md5, por exemplo, se um nome de arquivo puder ser duplicado
import urllib.request as urll
import re
import shelve
import hashlib
import time
res = urll.urlopen(url)
html = res.read()
files = re.findall('<a href="([^"]+)">', str(html))[1:]
db = shelve.open('dl.shelve')
print(files)
for file in files:
if file not in db:
print("Downloadling %s..." %file)
res = urll.urlopen(url + "" + file)
bytes = res.read()
md5 = hashlib.md5(bytes).hexdigest()
with open("dl\"+file, 'wb') as f:
f.write(bytes)
print((time.time(), len(bytes), md5))
db[file] = (time.time(), len(bytes), md5)
db.close()