并行获取文件

时间:2012-01-25 17:45:37

标签: python http asynchronous urllib2 urllib

为了下载文件,我正在创建一个urlopen对象(urllib2类)并以块的形式读取它。

我想多次连接到服务器并在六个不同的会话中下载文件。这样做,下载速度应该更快。许多下载管理器都有此功能。

我考虑过指定我想在每个会话中下载的文件部分,并以某种方式同时处理所有会话。我不确定如何实现这一点。

3 个答案:

答案 0 :(得分:24)

答案 1 :(得分:3)

听起来你想使用可用的HTTP Range之一。

编辑更新链接以指向w3.org存储的RFC

答案 2 :(得分:3)

正如我们一直在谈论的那样,我使用PycURL制作了这个。

我必须做的唯一一件事就是pycurl_instance.setopt(pycurl_instance.NOSIGNAL, 1)以防止崩溃。

我确实使用APScheduler在单独的线程中触发请求。感谢您在主线程中将忙碌等待while True: pass更改为while True: time.sleep(3)的建议,代码表现得相当不错,并且使用来自python-daemon包应用程序的Runner模块几乎可以用作典型的UN * X守护进程。