使用Python同时从多个网站下载图像

时间:2011-06-15 19:24:40

标签: python curl concurrency download urllib2

我正在尝试通过互联网使用Python同时下载多个图像,我看了几个选项,但似乎没有一个看起来令人满意。

我考虑过pyCurl,但是并不真正理解示例代码,对于像这样简单的任务来说似乎有些过分。 urlgrabber似乎是一个不错的选择,但文档说批量下载功能仍在开发中。 我在urllib2的文档中找不到任何内容。

是否有一个实际可行的选项并且更容易实现?感谢。

1 个答案:

答案 0 :(得分:1)

这不是很花哨,但你可以使用urllib.urlretrieve,以及一个运行它的线程或进程池。

因为他们正在等待网络IO,所以你可以同时运行多个线程 - 将URL和目标文件名粘贴在Queue.Queue中,并让每个线程都吸收它们。

如果使用多处理,则更容易 - 只需创建Pool进程,并使用函数和可迭代参数调用mypool.map。标准库中没有线程池,但如果您需要避免启动单独的进程,则可以获得第三方模块。