这使不断增加的内存使用脚本的一个精简版,我已经看到了它晃过600MB 2分钟后:“内存泄漏”与grequests?
import requests
import grequests
lines = (grequests.get(l.strip(), timeout=15) for l in open('links.txt') if len(l.strip()))
for r in grequests.imap(lines, size=20):
if r.ok:
print r.url
links.txt是含有大量URL的文件,这个问题发生在我收集的几个大型网站上。在我看来,反应对象可能不会被推断?
我更新GEVENT,请求和grequests今天,这里是他们的版本:
In [2]: gevent.version_info
Out[2]: (1, 0, 0, 'beta', 3)
In [5]: requests.__version__
Out[5]: '0.13.5'
grequests没有一个版本号,我能找到。
在此先感谢您的任何答案。
如果让脚本一直运行到链接列表的末尾,会发生什么情况?你会得到什么样的错误? – raben 2012-09-07 21:58:04
我跑过一个不同的问题,但在同一脉络 - 响应对象离开文件句柄打开,这将最终导致资源枯竭..不确定如果这是一个**请求**或** grequests **问题。但我想我能明白为什么请求的作者不包括grequests作为标准模块的一部分。 – synthesizerpatel 2012-11-17 08:45:02