有没有办法限制python的urllib2模块下载的数据量?有时我会遇到页面为/ dev / random的损坏站点,事实证明它们耗尽了服务器上的所有内存.
解决方法:
urllib2.urlopen返回一个类似文件的对象,您可以(至少在理论上)从此类对象中读取.read(N),以将返回的数据量限制为最多N个字节.
这种方法并非完全傻瓜,因为一个充满敌意的网站可能会花很多时间来欺骗一个合理可信的接收者,例如urllib2的默认打开器.在这种情况下,您将需要实现并安装自己的开启程序,该开启程序知道如何防范此类攻击(例如,一次从打开的套接字获取不超过MB的内存,等等).