好的,我需要使用 Python 下载一些网页,并对我的选项进行了快速调查。
Python 中包含:
urllib http://docs.python.org/library/urllib.html- 在我看来我应该使用 urllib2 代替。 urllib 不支持 cookie,仅支持 HTTP/FTP/本地文件(无 SSL)
urllib2 http://docs.python.org/library/urllib2.html- 完整的 HTTP/FTP 客户端,支持大多数需要的东西,如 cookie,不支持所有 HTTP 动词(仅 GET 和 POST,不支持 TRACE 等)
功能齐全:
机械化 http://wwwsearch.sourceforge.net/mechanize/- 可以使用/保存 Firefox/IE cookie,采取类似第二个链接的操作,积极维护(2011 年 3 月发布 0.2.5)
PycURL http://pycurl.sourceforge.net/- 支持curl所做的一切(FTP、FTPS、HTTP、HTTPS、GOPHER、TELNET、DICT、FILE和LDAP),坏消息:自2008年9月9日(7.19.0)以来未更新
新的可能性:
urllib3 http://code.google.com/p/urllib3/- 支持连接重用/池和文件发布
已弃用(也称为使用 urllib/urllib2 代替):
httplib http://docs.python.org/library/httplib.html- 仅 HTTP/HTTPS(无 FTP)
httplib2 http://code.google.com/p/httplib2/- 仅 HTTP/HTTPS(无 FTP)
首先让我印象深刻的是 urllib/urllib2/PycURL/mechanize 都是相当成熟且运行良好的解决方案。 mechanize 和 PycURL 随许多 Linux 发行版(例如 Fedora 13)和 BSD 一起提供,因此安装通常不是问题(所以这很好)。
urllib2 看起来不错,但我想知道为什么 PycURL 和 mechanize 看起来都很受欢迎,我是否缺少一些东西(即,如果我使用 urllib2,我会在某个时候把自己逼到角落吗?)。我真的很想得到一些关于这些东西的优点/缺点的反馈,这样我就可以为自己做出最好的选择。
编辑:添加了关于 urllib2 中动词支持的注释