我试图从网站上一页一页地抓取一些信息,基本上这就是我所做的:
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
好吧,上面的代码最终抛出了“内存不足”错误,并且在任务管理器中显示该脚本在运行几个小时后耗尽了几乎 1GB 内存......这是怎么回事?!
有人能告诉我出了什么问题吗?
这并不完全是内存泄漏,而是一个未记录的功能。基本上,mechanize.Browser()
将所有浏览器历史记录一起存储在内存中。
如果您添加一个呼叫MechBrowser.clear_history()
after Response.close()
,它应该可以解决问题。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)