私は実行する前にウェブからたくさんのファイルをダウンロードしなければならないプログラムを書いているので、すべてのファイルをダウンロードして"初期化 "init_program
と呼ばれるプログラムは、githubのgistfilesへのURLを持っているdicts
を介して動作します。 URLを取得し、urllib2
をダウンロードしてダウンロードします。私はすべてのファイルを追加することはできませんが、repo hereをクローンとして試してみることができます。ここでは要点からファイルを作成する機能があります:ウェブからのファイルダウンロードの処理速度を速める
def init_program():
""" Initialize the program and allow all the files to be downloaded
This will take awhile to process, but I'm working on the processing
speed """
downloaded_wordlists = [] # Used to count the amount of items downloaded
downloaded_rainbow_tables = []
print("\n")
banner("Initializing program and downloading files, this may take awhile..")
print("\n")
# INIT_FILE is a file that will contain "false" if the program is not initialized
# And "true" if the program is initialized
with open(INIT_FILE) as data:
if data.read() == "false":
for item in GIST_DICT_LINKS.keys():
sys.stdout.write("\rDownloading {} out of {} wordlists.. ".format(len(downloaded_wordlists) + 1,
len(GIST_DICT_LINKS.keys())))
sys.stdout.flush()
new_wordlist = open("dicts/included_dicts/wordlists/{}.txt".format(item), "a+")
# Download the wordlists and save them into a file
wordlist_data = urllib2.urlopen(GIST_DICT_LINKS[item])
new_wordlist.write(wordlist_data.read())
downloaded_wordlists.append(item + ".txt")
new_wordlist.close()
print("\n")
banner("Done with wordlists, moving to rainbow tables..")
print("\n")
for table in GIST_RAINBOW_LINKS.keys():
sys.stdout.write("\rDownloading {} out of {} rainbow tables".format(len(downloaded_rainbow_tables) + 1,
len(GIST_RAINBOW_LINKS.keys())))
new_rainbowtable = open("dicts/included_dicts/rainbow_tables/{}.rtc".format(table))
# Download the rainbow tables and save them into a file
rainbow_data = urllib2.urlopen(GIST_RAINBOW_LINKS[table])
new_rainbowtable.write(rainbow_data.read())
downloaded_rainbow_tables.append(table + ".rtc")
new_rainbowtable.close()
open(data, "w").write("true").close() # Will never be initialized again
else:
pass
return downloaded_wordlists, downloaded_rainbow_tables
この作品、はい、しかし、それは、各ファイルは、その中に、少なくとも100,000行を持っている、ファイルのサイズのため、非常に遅いです。この機能を高速化してより使いやすくするにはどうすればよいですか?
ええと、それはあなたのWiFi接続によって異なります。 Wi-Fiを改善することを除いて、これをスピードアップする方法はほとんどありません。いいにくいのですが。 – Qwerty
@QWERTYスレッドでも?私はこれが遅いことを意味するええ、それは最終的にそれの価値があるでしょうが、それは遅い初期化プロセスです.. – papasmurf
まあ... http://stackoverflow.com/a/9010299/2308683 –