使用Python并发下载多个网站的图片
我正在尝试用Python同时下载多个图片,结果找了很多方法,但都不太满意。
我考虑过pyCurl,但对示例代码不太理解,而且感觉这个工具对我这么简单的任务来说有点过于复杂。
urlgrabber看起来是个不错的选择,但文档上说它的批量下载功能还在开发中。
我在urllib2的文档里找不到任何相关的信息。
有没有什么简单易用的选项可以实现这个功能呢?谢谢。
1 个回答
1
这不是很复杂,但你可以使用 urllib.urlretrieve
,然后用一组线程或进程来运行它。
因为这些操作在等待网络输入输出,所以你可以同时运行多个线程——把网址和目标文件名放进一个 Queue.Queue
中,然后让每个线程去取这些网址。
如果你使用多进程,那就更简单了——只需创建一个 Pool
的进程,然后用 mypool.map
调用你的函数和参数列表。标准库里没有线程池,但如果你想避免启动单独的进程,可以找一个第三方模块来用。