Guest User

Untitled

a guest
Apr 22nd, 2018
86
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.28 KB | None | 0 0
  1. #!/usr/bin/env python
  2. import re
  3. import sys
  4. import urllib
  5.  
  6. def findDemo(url, needle):
  7.     print "Searching for '{0}' at {1}".format(needle, url)
  8.  
  9.     page = downloadFile(url)
  10.     files = re.findall(r'<a href="(.*\.txt)">', page)
  11.     pattern = re.compile(needle)
  12.     numFiles = len(files)
  13.     matches = []
  14.    
  15.     for i in range(0, numFiles):
  16.         progressBar(i, numFiles)
  17.         file = files[i]
  18.         tmp = downloadFile(url + file)
  19.  
  20.         if pattern.search(tmp) is not None:
  21.             mvd = file.replace('.txt', '.mvd')
  22.             out = urllib.unquote(mvd)
  23.             urllib.urlretrieve(url + mvd, out)
  24.             matches.append(out)
  25.  
  26.     return matches
  27.  
  28. def downloadFile(url):
  29.     sock = urllib.urlopen(url)
  30.     page = sock.read()
  31.     sock.close()
  32.  
  33.     return page
  34.  
  35. def progressBar(index, total):
  36.     percent = float(index) / float(total) * 100
  37.     sys.stdout.write("%3d%%\r" % percent)
  38.     sys.stdout.flush()
  39.  
  40. if __name__ == "__main__":
  41.     if len(sys.argv) != 3:
  42.         print "Usage: %s <url> <pattern>" % sys.argv[0]
  43.         sys.exit(0)
  44.  
  45.     files = findDemo(sys.argv[1], sys.argv[2])
  46.    
  47.     if len(files) == 0:
  48.         print "No demos found"
  49.         sys.exit(0)
  50.    
  51.     print "Found demos:"
  52.     for file in files:
  53.         print file
Add Comment
Please, Sign In to add comment