机械化"内存不足"错误

Sha*_*ane 5 python memory mechanize urllib2

我试图从网页上逐页获取一些信息,基本上就是我所做的:

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
Run Code Online (Sandbox Code Playgroud)

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

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

Jos*_*osh 14

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

如果您在MechBrowser.clear_history()之后添加呼叫Response.close(),则应该解决问题.