Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/python-2.7/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 2.7 每次运行script\python 2.7时,HTTP响应代码都不同_Python 2.7_Http Status Code 404_Python Requests_Urllib2_Urllib - Fatal编程技术网

Python 2.7 每次运行script\python 2.7时,HTTP响应代码都不同

Python 2.7 每次运行script\python 2.7时,HTTP响应代码都不同,python-2.7,http-status-code-404,python-requests,urllib2,urllib,Python 2.7,Http Status Code 404,Python Requests,Urllib2,Urllib,我编写了一个简单的脚本来检查受错误404影响的url 当我用404在url上运行脚本时,它确实会返回正确的响应,但有时它会返回不同的响应(503),我不明白为什么会发生这种情况,我在许多其他url上测试过,结果从来都不一致。有没有人会这么做,并解释为什么我的结果不断变化,即使实际的url状态没有变化 提前感谢您的帮助 我尝试使用以下模块: urllib,urllib2,请求 所有这些都产生了相同的不一致的结果 以下是脚本: 我 响应[404]和响应[503](不正确) 二, 三, 503的原因通

我编写了一个简单的脚本来检查受错误404影响的url

当我用404在url上运行脚本时,它确实会返回正确的响应,但有时它会返回不同的响应(503),我不明白为什么会发生这种情况,我在许多其他url上测试过,结果从来都不一致。有没有人会这么做,并解释为什么我的结果不断变化,即使实际的url状态没有变化

提前感谢您的帮助

我尝试使用以下模块:

urllib,urllib2,请求

所有这些都产生了相同的不一致的结果

以下是脚本:

响应[404]和响应[503](不正确)

二,

三,

503的原因通常是“服务不可用”,这意味着无论处理您的请求的是什么,都无法找到支持服务来提供响应。这可能是由物理或软件提供的负载平衡器(F5s、HAProxy等)、CDN(Fastly、Cloudflare等)或Apache或Nginx等正在运行但没有适当的应用程序可联系(无论出于何种原因)返回的

因为您的示例中的URL是Amazon URL,所以CDN很可能返回503。CDN(如Fastly)使用清漆,在以下情况下清漆将返回503:

  • 后端服务器返回了一个503,所以将其转发
  • 后端服务器返回了一个不可分析的响应
在其他一些情况下,CDN可能会返回503:

  • CDN从原点读取超时
  • CDN连接到源站时超时
  • CDN无法读取/写入源站
  • 源服务器拒绝了来自CDN的连接
  • CDN无法找到到源站的路由
  • 原点错误配置了TLS
(还有许多其他问题)


所以说真的,我们不太可能告诉你为什么你会得到503。您需要对响应进行更多的反思,并查找相关文档。

我猜服务器可能过载,并且可能会丢弃一些请求,因此在这种情况下,
503
状态正常非常感谢sigmavirus24!我会更详细地查看回复。
import requests

for url in ['https://www.amazon.es/gp/product/B00QTVL0T4']:
    response = requests.get(url)
    response.status_code
    print(response)
import urllib

result=''

#***** paste url into square bracket ****#

for url in ["https://www.amazon.es/gp/product/B003ODEJZ2",'https://www.amazon.fr/gp/product/B01H801C9C']:
    a=urllib.urlopen(url)
    e=a.getcode()
    if e==404:
        result+=(url+" Error_404 "+"\n")
    else:
        result+=(url+" Link_OK "+"\n")
print result
import urllib2
for url in ['https://www.amazon.es/gp/product/B003ODEJZ2','https://www.amazon.fr/gp/product/B01H801C9C','https://www.amazon.de/dp/B00B8PRE1Y']:
    try:
        connection = urllib2.urlopen(url)
    except urllib2.HTTPError, e:
         if e.getcode()==404:
             print (url+" Error_404")
         else:
             print(url+" Link_Ok")