1

如果我将 Firefox 指向http://bitbucket.org/tortoisehg/stable/wiki/Home/ReleaseNotes,我会得到一个 HTML 页面。但是如果我在 Python 中尝试这个:

导入 urllib

网站='http://bitbucket.org/tortoisehg/stable/wiki/Home/ReleaseNotes'
req = urllib.urlopen(站点)
文本 = req.read()

我得到以下信息:

500 Internal Server Error 服务器遇到内部错误或配置错误,无法完成您的请求。

我究竟做错了什么?

4

3 回答 3

3

从表面上看,你没有做错任何事,正如错误页面所说,你应该联系网站的管理员,因为他们是那些拥有服务器日志的人,可以解释发生了什么。幸运的是,bitbucket 的网站管理员是一群友好的人!

毫无疑问,浏览器会以一种方式设置某些标头或标头组合,而 urllib 会以另一种方式设置,并且在后一种情况下会触发服务器上的错误。您可能希望准确查看正在发送的标头,例如使用 firefox 中的 firebug,并重现这些标头,直到您完全隔离服务器错误;最有可能的是用户代理或一些“接受”-ish 标头,它正在处理该错误。

于 2009-08-26T15:18:37.550 回答
3

您没有做错任何事情,bitbucket 会进行一些用户代理检测(例如检测 mercurial 客户端)。只需更改用户代理即可修复它(如果它没有urllib作为子字符串)。

你应该填写一个关于这个的问题:http: //bitbucket.org/jespern/bitbucket/issues/new/

于 2009-08-26T15:36:53.863 回答
-2

我不认为你做错了什么 - 看起来这台服务器刚刚关闭?您的脚本对我来说运行良好(“文本”包含与浏览器中显示的数据相同的数据)。

于 2009-08-26T15:16:03.030 回答