Я пытался соскрести некоторую информацию со страницы сайта постранично, в основном, вот что я сделал:«Недостаточно памяти» ошибка Mechanize
import mechanize
MechBrowser = mechanize.Browser()
Counter = 0
while Counter < 5000:
Response = MechBrowser.open("http://example.com/page" + str(Counter))
Html = Response.read()
Response.close()
OutputFile = open("Output.txt", "a")
OutputFile.write(Html)
OutputFile.close()
Counter = Counter + 1
Ну, вышеуказанные коды в конечном итоге выбрасывая «Из Memory ", а в диспетчере задач это показывает, что скрипт израсходовал почти 1 ГБ памяти после нескольких часов работы ... как получилось ?!
Кто-нибудь скажет мне, что пошло не так?
Первое, что я попытаюсь исключить, - это механизировать утечку памяти - вместо этого используйте 'urllib2.urlopen()'. –
Как примечание, гораздо больше pythonic делать '' для счетчика в диапазоне (5000): ''. И PEP8 рекомендует lower_case_with_underscores для имен переменных, в то время как CamelCase зарезервирован для классов. Кроме того, проверьте '' с'' для записи/чтения в/из файлов. –
(a) Вопрос о том, что происходит с моим кодом, лучше на codereview (b) Повторное использование переменной как таковая не является проблемой (c) Узнайте о профилировании памяти. – Marcin