【发布时间】:2011-01-24 01:24:28
【问题描述】:
好的,所以我需要使用 Python 下载一些网页并快速调查我的选项。
包含在 Python 中:
urllib - 在我看来,我应该改用 urllib2。 urllib 不支持 cookie,仅支持 HTTP/FTP/本地文件(无 SSL)
urllib2 - 完整的 HTTP/FTP 客户端,支持最需要的东西,比如 cookie,不支持所有 HTTP 动词(只有 GET 和 POST,没有 TRACE 等)
功能齐全:
mechanize - 可以使用/保存 Firefox/IE cookie,采取跟随第二个链接等操作,积极维护(2011 年 3 月发布的 0.2.5)
PycURL - 支持 curl 所做的一切(FTP、FTPS、HTTP、HTTPS、GOPHER、TELNET、DICT、FILE 和 LDAP),坏消息:自 2008 年 9 月 9 日 (7.19.0) 起未更新
新的可能性:
urllib3 - 支持连接重用/池化和文件发布
已弃用(也就是改用 urllib/urllib2):
httplib - 仅 HTTP/HTTPS(无 FTP)
httplib2 - 仅 HTTP/HTTPS(无 FTP)
让我印象深刻的第一件事是 urllib/urllib2/PycURL/mechanize 都是非常成熟且运行良好的解决方案。 mechanize 和 PycURL 附带了许多 Linux 发行版(例如 Fedora 13)和 BSD,因此安装通常不是问题(这很好)。
urllib2 看起来不错,但我想知道为什么 PycURL 和 mechanize 看起来都非常受欢迎,我是否缺少某些东西(即,如果我使用 urllib2,我会在某个时候把自己画到一个角落吗?)。我真的很想得到一些关于这些东西的利弊的反馈,这样我就可以为自己做出最好的选择。
编辑:在 urllib2 中添加了关于动词支持的注释
【问题讨论】:
-
“最好”是什么意思?最好在什么方面?最快的?最大的? Cookie 的最佳用途?你需要做什么?
-
httplib 没有被“弃用”。它是 urllib2 构建在其之上的较低级别的模块。你可以直接使用它,但通过 urllib2 更容易
-
科里所说的,例如urllib3 是 httplib 之上的一层。此外,httplib2 并没有被弃用——实际上它比 urllib2 更新,并且修复了连接重用等问题(与 urllib3 相同)。
-
有一个更新的库叫做 requests。见docs.python-requests.org/en/latest/index.html
-
在此使用@ustun:使用请求。
标签: python urllib2 mechanize pycurl