Python urllib2 代码在一台机器上返回 "HTTP error 503",但在另一台机器上不返回

标签 python http urllib2 google-compute-engine

我可以打开一个网页,例如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/

相关文章:

node.js - 为什么我在 Web 服务器上收到代理错误,但在本地主机上却没有?

python - 多处理对 urllib2 没用?

python - 如何从 JSON 中提取循环 key ?

python - 为什么基类在多重继承中不起作用?

python - 如何更改服务器上的最大邮件大小限制?

asp.net-mvc - 在启动/程序设置中设置允许的最大内容长度限制不起作用

python - 以编程方式登录 OKC

python检查多级字典键是否存在

python - 检查字母是否可以用来构建单词

http - Scala http 操作