蟒蛇了urllib.urlopen()调用不会与浏览器接受一个URL工作
题
如果我点火狐在 http://bitbucket.org/tortoisehg/stable/维基/主页/阅读发布中,我得到的HTML页面。但是,如果我尝试这在Python:
import urllib site = 'http://bitbucket.org/tortoisehg/stable/wiki/Home/ReleaseNotes' req = urllib.urlopen(site) text = req.read()
我得到以下:
500内部服务器错误 服务器遇到一个内部错误或配置错误,无法完成请求。
我在做什么错了?
解决方案
您没有做错什么,到位桶做一些用户代理检测(检测善变的客户为例)。只需改变修复它(如果它没有用户代理urllib
作为子串)。
您应该填补这个方面的问题: http://bitbucket.org/jespern/到位桶/问题/新/
其他提示
您正在做的没有错,在表面上,并作为错误页说,因为他们有这或许可以解释发生了什么服务器日志那些你应该联系该网站的管理员。幸运的是,到位桶的网站管理员是一个友好的一群!
毫无疑问,是浏览器设定一种方式,的urllib设置另一种方式报头的一些头或组合,并在服务器上的错误在后者的情况下被搔痒。您可能希望看到头被送到例如到底是什么与Firefox中的Firebug,并重现那些直到您隔离完全相同的服务器的bug;它很可能将是用户代理或一些“接受”这发痒该错误-ish报头。
我不认为你做错了什么 - 它看起来像这台服务器是刚下来?您的脚本工作得很好,我(“文本”包含相同的数据,在浏览器中显示)。
不隶属于 StackOverflow