答案很简单。Pythonurllib
和urllib2
远远没有达到成熟和强大的程度。在我的经历中,比wget更好的是cURL
。我编写的代码可以通过HTTP下载千兆字节的文件,文件大小从50 KB到2 GB以上。据我所知,cURL是目前用于此任务 的 最可靠的软件。我认为python,wget甚至大多数网络浏览器都无法在实现的正确性和鲁棒性方面与之匹敌。在以正确正确的方式使用urllib2的足够现代的python上,它可以变得相当可靠,但是我仍然运行curl子进程,这绝对是坚如磐石。
另一种说法是cURL只做一件事,并且比其他任何软件都做得更好,因为cURL有更多的开发和完善功能。Python的urllib2
服务性和便捷性足以应付中小型工作负载,但是cURL在可靠性方面遥遥领先。
而且,cURL具有许多选项来调整可靠性行为,包括重试计数,超时值等。