我可以打开一个网页,例如nike的page在我的 ubuntu 桌面上使用 Python 2.7 的 urllib2 库。但是,当我将该代码移动到 Google 计算引擎服务器(具有相同的操作系统)时,它开始返回 HTTP 错误 503:服务不可用
。
什么可能从一个地方而不是另一个地方导致此错误?如果可能,我将如何使我的机器表现一致?
最佳答案
除非您传递“Accept” header ,否则该服务器将返回urllib2.HTTPError: HTTP Error 403: Forbidden
。当我尝试时,仅使用“User-Agent” header 失败。这是工作代码;我已经注释掉了不必要的“User-Agent”和“Connection” header ,但将它们留作引用:
import urllib2
user_agent = {'User-Agent': 'Mozilla/5.0'}
req_headers = {
# 'User-Agent': user_agent,
# 'Connection': 'Keep-Alive',
'Accept': 'text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8'
}
request = urllib2.Request('http://www.nike.com/us/en_us/c/men', headers=req_headers)
response = urllib2.urlopen(request)
data = response.read()
print data
另请参阅其他 Stackoverflow answer ,我用它作为“Accept”字符串的引用。
关于Python urllib2 代码在一台机器上返回 "HTTP error 503",但在另一台机器上不返回,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33644749/