mechanize 出现“内存不足”错误

2023-11-30

我试图从网站上一页一页地抓取一些信息,基本上这就是我所做的:

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(使用前将#替换为@)

mechanize 出现“内存不足”错误 的相关文章

随机推荐

  • 画布渐变表现

    我目前正在使用画布编写一个小游戏 对于游戏 我需要某种雾来隐藏地图的大部分 并且只有玩家周围的一小部分区域应该可见 为此 我使用第二个画布覆盖游戏发生的画布 并用渐变填充它 从透明到黑色 function drawFog fogc clea
  • 连接到 firestore 模拟器时 Python firebase_admin 挂起

    我无法从 python 连接到 firestore 模拟器 连接并写入文档到真实项目工作正常 但是在设置环境时 设置函数永远不会解析变量 FIRESTORE EMULATOR HOST 代码 os environ FIRESTORE EMU
  • 如何在 Python OpenCV 中保存视频

    我已经使用 CV2 打开了一个视频 使用进行了一些更改cv2 rectangle 现在 当我这样做时cv2 imshow frame frame 它会播放视频 相反 我想以原始大小和帧速率将视频保存在某处 您可以逐帧保存视频 基于文档上的示
  • 返回在 javascript 对象中找不到的键的默认值

    当调用不在对象中的键时 将返回 undefined 我想返回一个我指定的字符串而不是未定义的字符串 例如 let obj key1 key1 let res obj key2 console log res I want console l
  • 如何在 Angularjs 中创建过滤器?

    我有这个课程集合 id 1 courseId 2 text John id 2 courseId 2 text Willi id 3 courseId 2 text Inga id 4 courseId 1 text Jerry id 5
  • 如何用 VI/VIM 编辑器中每次出现的不同单词替换查找单词?

    例如 我有一个文本 10 3 4 2 10 4 10 不 我想用不同的单词更改每 10 个 我知道 s 10 replace words gc 但它只让我像 yes no 一样进行交互式替换 但我想用不同的单词来更改 10 的每次出现 例如
  • 具有背景颜色的粗体文本样式的 Excel 行的 Java 代码

    我用谷歌搜索了一些代码并找到了一些答案 但无法以粗体形式获取 Excel 文件输出并设置背景颜色 我尝试过以下代码 你能告诉我哪里错了吗 请看一下 谢谢 仅供参考 我将用蓝色或任何浅色以粗体显示第一行 背景 如果你知道请帮忙看一下代码 Ex
  • 为什么在子类化 tf.keras 层(或模型)类时实现“call”方法使层(模型)对象可调用?

    当编写自定义的 tf keras 层时 我们必须实现 call 方法 因为只有 如果对象具有有效的 则可以像使用 的函数一样调用类的对象 call 方法 虽然我没有找到类似的东西 class tf keras model def call
  • Chrome 忽略从 WebAPI 控制器发送的 HttpResponse 的 Content-Disposition 标头中建议的扩展名

    我正在尝试编写一个 WebAPI 控制器 它可以动态生成 W indows 快捷方式文件 lnk 并将其发送回客户端 但即使我在 Content Disposition 标头中指定 lnk 作为扩展名构建响应时 Chrome 仍会在 另存为
  • Spring Boot yaml 文件中数字类型的 @Value

    I got a data yml在以下结构的资源文件夹中 main header info 3600L 我使用Spring Boot版本2 4 2 我想注入属性main header1 info对于一个字段 我按以下方式执行此操作 Comp
  • 如何查找包含 的存储过程?

    我需要在 SQL Server 2008 中搜索存储过程 其中可能包含 数据库字段的名称或变量名称 SELECT ROUTINE NAME ROUTINE DEFINITION FROM INFORMATION SCHEMA ROUTINE
  • IE浏览器中的JQuery选择框焦点问题

    下面的 input 与标签匹配 该代码在所有浏览器中都可以正常工作 除了在 Internet Explorer 中 我需要单击选择框两次才能获得下拉列表 input focus function var rc this parents rc
  • 如何将密钥信息保留在 Git 存储库之外

    我的存储库中有一些文件 其中一个包含 Adafruit 秘密密钥 我想使用 Git 来存储我的存储库 但我不想发布密钥 保守秘密的最佳方法是什么 而不必每次提交和推动某件事时都将其清空 根据您想要实现的目标 您可以选择以下方法之一 将文件保
  • 使用 d3.js 在强制布局中添加和删除节点时出现问题

    我试图通过从 Zabbix API 获取数据来可视化服务器可用性 以及随后的其他事情 一旦可行 您可以在 Zabbix API 文档中的 此处 1 中查看有关返回数据的示例 获取数据不是问题 但我认为 d3 js 的数据连接遇到了一些问题
  • 为什么 SQL 查询的结果没有按照我期望的顺序返回?

    如果将项目插入表中 然后我编写一个查询 例如select from table 为什么结果与我期望的顺序不一样 可以通过在语句中使用 Order by 子句来强制查询的顺序 SQL 数据库实际上并不了解您放置内容的顺序 或者按照给定顺序存储
  • 用于检查 API 与 Android 的兼容性的 Maven 插件

    我正在寻找一个 Maven 插件 可以检查 Jar Class 文件是否符合 Android 指定的 API 级别 例如 所有类和方法都可以在 Android API 中解析吗 有人知道这样的插件吗 DX 工具似乎没有提供这样的功能 或者我
  • mysqldb ..“NoneType”对象不可下标

    这段代码在以下情况下工作正常cur execute and db commit 行被注释掉 即 如果我所做的只是打印查询 则该程序将运行 n 行 问题似乎出现在这里 player categories statistics cur fetc
  • 将电子邮件地址设置为 ASP.NET 会员提供商中的用户名

    我想在会员 api 中使用电子邮件地址作为用户名 而不是接受用户名 我希望用户可以使用电子邮件地址注册我的网站 并且可以使用电子邮件 ID 和密码而不是用户名和密码登录 这就是我们所做的 因此它是可重用的 我们可以在 web config
  • 内插 NA 值

    我有两组与时间无关的样本 我想合并它们并计算缺失值 在我不具备两者价值观的时代 简化示例 A lt cbind time c 10 20 30 40 50 60 70 80 90 100 Avalue c 1 2 3 2 1 2 3 2 1
  • mechanize 出现“内存不足”错误

    我试图从网站上一页一页地抓取一些信息 基本上这就是我所做的 import mechanize MechBrowser mechanize Browser Counter 0 while Counter lt 5000 Response Me