机械化“内存不足”错误

时间:2012-02-16 15:35:14

标签: python memory urllib2 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

好吧,上面的代码最终抛出了“Out of Memory”错误,在任务管理器中它显示脚本在运行几个小时后耗尽了近1GB的内存......怎么回事?!

有人会告诉我出了什么问题吗?

1 个答案:

答案 0 :(得分:14)

这不是内存泄漏,而是一个未记录的功能。基本上,mechanize.Browser()将所有浏览器历史记录集中存储在内存中。

如果您在MechBrowser.clear_history()之后添加对Response.close()的来电,则应该可以解决问题。