【发布时间】:2012-06-25 21:47:33
【问题描述】:
如何使用 mechanize 在 Python 中打开 SSL URL?
我正在尝试在 Ubuntu 上使用 Python 2.7.3 进行简单的页面检索,例如:
import mechanize
browser = mechanize.Browser()
resp = browser.open('https://mydomain.com')
但它会引发错误:
urllib2.URLError: <urlopen error [Errno 1] _ssl.c:504: error:140773E8:SSL routines:SSL23_GET_SERVER_HELLO:reason(1000)>
奇怪的是,当我在 Fedora 上的 Python 2.6.4 下运行相同的代码时,我没有收到此错误...
据推测,这可能不是 mechanize 的直接问题,而是 urllib2 和底层 SSL C 库的问题。谷歌搜索显示很少点击。有解决办法吗?
编辑:我找到了这个old bug report,并提供了建议的解决方法(基本上,Python 正在尝试将 SSLv23 用于仅 SSLv3 的站点),但该代码反而导致错误 httplib.BadStatusLine: ''
【问题讨论】:
-
你在 Windows 上吗?
-
@samy.vilar,不,我相应地更新了我的问题。
-
我认为这是一个错误bugs.launchpad.net/ubuntu/+source/openssl/+bug/966058 虽然不确定,但您可以查看code.google.com/p/selenium/?redir=1 它很酷。
标签: python ssl mechanize urllib2