我正在尝试通过互联网使用Python同时下载多个图像,我看了几个选项,但似乎没有一个看起来令人满意。
我考虑过pyCurl,但是并不真正理解示例代码,对于像这样简单的任务来说似乎有些过分。 urlgrabber似乎是一个不错的选择,但文档说批量下载功能仍在开发中。 我在urllib2的文档中找不到任何内容。
是否有一个实际可行的选项并且更容易实现?感谢。
答案 0 :(得分:1)
这不是很花哨,但你可以使用urllib.urlretrieve
,以及一个运行它的线程或进程池。
因为他们正在等待网络IO,所以你可以同时运行多个线程 - 将URL和目标文件名粘贴在Queue.Queue
中,并让每个线程都吸收它们。
如果使用多处理,则更容易 - 只需创建Pool
进程,并使用函数和可迭代参数调用mypool.map
。标准库中没有线程池,但如果您需要避免启动单独的进程,则可以获得第三方模块。