使用Python并发下载多个网站的图片

0 投票
1 回答
511 浏览
提问于 2025-04-16 19:38

我正在尝试用Python同时下载多个图片,结果找了很多方法,但都不太满意。

我考虑过pyCurl,但对示例代码不太理解,而且感觉这个工具对我这么简单的任务来说有点过于复杂。

urlgrabber看起来是个不错的选择,但文档上说它的批量下载功能还在开发中。

我在urllib2的文档里找不到任何相关的信息。

有没有什么简单易用的选项可以实现这个功能呢?谢谢。

1 个回答

1

这不是很复杂,但你可以使用 urllib.urlretrieve,然后用一组线程或进程来运行它。

因为这些操作在等待网络输入输出,所以你可以同时运行多个线程——把网址和目标文件名放进一个 Queue.Queue 中,然后让每个线程去取这些网址。

如果你使用多进程,那就更简单了——只需创建一个 Pool 的进程,然后用 mypool.map 调用你的函数和参数列表。标准库里没有线程池,但如果你想避免启动单独的进程,可以找一个第三方模块来用。

撰写回答